Traveling Salesman Traveling Salesman - 2 months ago 6
MySQL Question

how to display MySql error in php

In PHP, I am trying to execute a long MySql query that depends on the user input. However, my query fails with the following message,

"Query Failed".


Actually I have printed this message whenever the query fails but I am having hard time looking for the reason behind this failure. Unfortunately, I couldn't find it because the error is not specified on the web page. My question is, is there any way to display the error message that caused the failure on the web page. Thank you.

Here's my code,

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

Answer

Use this:

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

You can also use this to print the error code.

echo mysqli_errno($this->db_link);

Take a look here and here

Comments