在网页上显示PHP/SQL查询以便调试


Displaying PHP/SQL Query on Webpage for Debugging Purpose

我正在一个基于PHP/MYSQL的数据库上工作。当查询不工作时,通常在调试期间,我认为如果我能看到处理的查询将会有所帮助。因为可能有问题的处理查询与我编码的查询不同。如何查看已处理的查询?以下是我的简化php控制器代码:

<?php
$patientid = "3";
$patientname = "Khan";
$patientcity = "Osaka";
$Result = mysqli_query($link, 'SELECT id, name, city FROM patient-table WHERE id= '".$patientid."' ');
If(!$Result){
   echo 'An error was encountered during fetching patient's data, error details: '. mysqli_error($link);
}
//Code for displaying results of query
?>

任何帮助将非常感激。谢谢。

为什么不把它赋值为一个简单的变量呢?

<?php
$patientid = "3";
$patientname = "Khan";
$patientcity = "Osaka";
$query = 'SELECT id, name, city FROM patient-table WHERE id= '".$patientid."' ';
$Result = mysqli_query($link, $query);
If(!$Result){
   echo 'An error was encountered during fetching patients data using query, '.$query.' , error details: '. mysqli_error($link);
}
//Code for displaying results of query
?>

尝试将查询放入变量中,并在运行查询时引用该变量。

那么您可以简单地回显查询变量

问题是:你的echo语句有问题病人的'撇号在这里结束了你的字符串。看看这个。否则,您已经使用了正确的查看查询的方式。

有一个简单的方法。我将向您展示如何做到这一点,然后如何在完成调试后删除查询显示代码。

显示查询首先将查询保存在一个变量中,如:

$patientquery = 'SELECT id, name, city FROM patient-table WHERE id = ' . '$patientid';

然后处理查询,你必须使用:

$Result = mysqli_query($link, $patientquery);

您可以通过简单地回显$patientquery:

来查看已处理的查询:
echo $patientquery;

这是你的代码,上面的修改:

<?php
$patientid = "3";
$patientname = "Khan";
$patientcity = "Osaka";
$patientquery = 'SELECT id, name, city FROM patient-table WHERE id = ' . $patientid;
$Result = mysqli_query($link, $patientquery);
If(!$Result){
   echo 'An error was encountered during fetching patient's data, error details: '. mysqli_error($link);
}
echo $patientquery; // to display processed query
//Code for displaying results of query
?>

禁用查询显示代码调试完成后,您可以通过添加注释斜杠来禁用显示处理过的查询的行,如:

//echo $patientquery;