как отображать ошибку 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)); , $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)); 

Solutions Collecting From Web of "как отображать ошибку MySql в php"

Использовать это:

 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); 

Взгляните сюда и здесь

функция функции die ()

 or die(mysql_error()); 

Я использую следующее, чтобы включить все отчеты об ошибках для MySQLi

 mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT); 

* ПРИМЕЧАНИЕ. Не используйте это в рабочей среде.

sugestions dotn работают, потому что они предназначены для стандартного драйвера mysql, а не для mysqli,

$this->db_link->error содержит ошибку, если она произошла

или

 mysqli_error($this->db_link) 

будет работать

 mysql_query("YOUR QUERY") OR die("Error:".mysql_error()); 

Попробуйте что-то вроде этого:

 $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($sql) or trigger_error("Query Failed! SQL: $sql - Error: ".mysqli_error(), E_USER_ERROR); 

Этот метод лучше, чем умереть, потому что вы можете использовать его для разработки и производства, это постоянное решение.