我正在一个基于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;