반응형
사용자 입력에 따라 긴 쿼리에 대한 MySQL 오류를 PHP에 표시하려면 어떻게 해야 합니까?
PHP에서는 사용자 입력에 따라 긴 MySQL 쿼리를 실행하려고 합니다.그러나 다음 메시지와 함께 쿼리가 실패합니다.
"Query Failed".
사실 저는 쿼리가 실패할 때마다 이 메시지를 출력했지만, 이 실패의 원인을 찾는 데 어려움을 겪고 있습니다.웹 페이지에 오류가 명시되어 있지 않아서 아쉽게도 찾을 수 없었습니다.웹 페이지에 장애를 일으킨 오류 메시지를 표시하는 방법이 있습니까?
내 암호는 여기 있고,
$from = "Findings";
$where = "";
if ($service != null)
{
$from = $from . ", ServiceType_Lookup";
$where= "Findings.ServiceType_ID= ServiceType_Lookup.ServiceType_ID AND ServiceType_Name= ". $service;
if ($keyword != null)
$where= $where . " AND ";
}
if ($keyword != null)
{
$where= $where . "Finding_ID LIKE '%$keyword%' OR
ServiceType_ID LIKE '%$keyword%' OR
Title LIKE '%$keyword%' OR
RootCause_ID LIKE '%$keyword%' OR
RiskRating_ID LIKE '%$keyword%' OR
Impact_ID LIKE '%$keyword%' OR
Efforts_ID LIKE '%$keyword%' OR
Likelihood_ID LIKE '%$keyword%' OR
Finding LIKE '%$keyword%' OR
Implication LIKE '%$keyword%' OR
Recommendation LIKE '%$keyword%' OR
Report_ID LIKE '%$keyword%'";
}
$query = "SELECT Finding_ID,
ServiceType_ID,
Title,
RootCause_ID,
RiskRating_ID,
Impact_ID,
Efforts_ID,
Likelihood_ID,
Finding,
Implication,
Recommendation,
Report_ID FROM ".$from . " WHERE " . $where;
echo "wala 2eshiq";
$this->result = $this->db_link->query($query);
if (!$this->result) {
printf("Query failed: %s\n", mysqli_connect_error());
exit;
}
$r = mysqli_query($this->db_link, $query);
if ($r == false)
printf("error: %s\n", mysqli_errno($this->db_link));
사용 방법:
mysqli_query($this->db_link, $query) or die(mysqli_error($this->db_link));
# mysqli_query($link,$query) returns 0 if there's an error.
# mysqli_error($link) returns a string with the last error message
오류 코드를 인쇄하는 데 사용할 수도 있습니다.
echo mysqli_errno($this->db_link);
MySQLi에 대한 모든 오류 보고 기능을 설정하려면 다음을 사용합니다.
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
*참고: 프로덕션 환경에서는 사용하지 마십시오.
함수 다이() 사용:
or die(mysql_error());
제안은 mysqli가 아닌 표준 MySQL 드라이버에 대한 것이기 때문에 작동하지 않습니다.
$this->db_link->error오류가 발생한 경우의 오류를 포함합니다.
아니면
mysqli_error($this->db_link)
효과가 있을 겁니다
다음과 같은 것을 시도해 보십시오.
$link = @new mysqli($this->host, $this->user, $this->pass)
$statement = $link->prepare($sqlStatement);
if(!$statement)
{
$this->debug_mode('query', 'error', '#Query Failed<br/>' . $link->error);
return false;
}
당신에게 유용한 코드 한 줄은 다음과 같습니다.
$sql = "Your SQL statement here";
$result = mysqli_query($this->db_link, $sql) or trigger_error("Query Failed! SQL: $sql - Error: ".mysqli_error($this->db_link), E_USER_ERROR);
이 방법은 보다 낫습니다.die, 개발 및 생산에 사용할 수 있기 때문입니다.그것이 영구적인 해결책입니다.
언급URL : https://stackoverflow.com/questions/12227626/how-do-i-display-a-mysql-error-in-php-for-a-long-query-that-depends-on-the-user
반응형
'programing' 카테고리의 다른 글
| pandas apply function that returns multiple values to rows in pandas dataframe (0) | 2023.10.04 |
|---|---|
| JS를 이용하여 h1 태그의 값을 얻는 방법은? (0) | 2023.10.04 |
| 스프링 배치 및 jpa와 스프링 부트 통합 (0) | 2023.10.04 |
| jQuery의 "val()"이(가) 작동하지 않습니다. (0) | 2023.10.04 |
| 기본 앵커 동작 방지 AngularJS (0) | 2023.10.04 |