Php mysql\u查询返回true而不是Resource
我面临着非常奇怪的问题。Php mysql\u查询返回true而不是Resource,php,mysql,Php,Mysql,我面临着非常奇怪的问题。 mysql\u query返回true而不是SELECT的资源ID $query = "SELECT s.id, s.lesson_code, l.lesson_name, t.teacher_name FROM student_comment s LEFT JOIN classes l ON s.lesson_code = l.lesson_code LEFT JOI
mysql\u query
返回true而不是SELECT的资源ID
$query = "SELECT s.id, s.lesson_code, l.lesson_name, t.teacher_name
FROM student_comment s
LEFT JOIN classes l
ON s.lesson_code = l.lesson_code
LEFT JOIN teacher t
ON s.teacher_id = t.id
WHERE s.school_id = '" .$_GET['school_id']. "'
ORDER BY s.id DESC";
但是,;当我在phpMyAdmin中执行此查询时,它会给出准确的结果。
但相同的查询在PHP页面中给出了以下错误
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\web\htdocs\test\home\question.php on line 33
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\web\htdocs\test\home\question.php on line 35
$query=“选择s.id、s.lesson\u代码、l.lesson\u名称、t.teacher\u名称
来自学生的评论
左连接类l
关于s.lesson_代码=l.lesson_代码
左接t老师
关于s.teacher_id=t.id
其中s.school\u id='“$\u获得['school\u id']。"'
由s.id DESC订购”;
$exe=mysql\u query($query)或die(mysql\u error());
而($fetch=mysql\u fetch\u数组($exe))
{
回显“”;打印($fetch);
}
查询将返回false
而不是true
(布尔值)
失败时返回FALSE。为了成功地选择、显示、描述或解释查询,mysqli_query()将返回一个mysqli_结果对象。对于其他成功的查询,mysqli_query()将返回TRUE
如果查询的格式没有错误,那么您的参数$\u GET['school\u id']很可能是错误的
使用
mysqli
而不是mysql
,但逻辑与Parag的答案类似。添加完整的代码!!您的查询失败。您需要检查mysql_error()以找出原因。仅供参考,您非常容易受到危险:您正在使用并且应该使用。你也很容易受到一个现代API的影响,它会让你更容易从中受益。如果它返回true
,我会非常惊讶,它更可能返回false
,首先我要感谢每一个回答的人。我在这个问题上使用了$GET,通常这里有myqyl\u real\u escape\u string方法。不管怎样,ParagTyagi,你的代码运行良好,但我想知道为什么你的代码运行正常,而我的代码却失败了。仅仅转义是不够的。使用mysqli而不是mysql,准备语句,然后绑定参数。
$query = "SELECT s.id, s.lesson_code, l.lesson_name, t.teacher_name
FROM student_comment s
LEFT JOIN classes l
ON s.lesson_code = l.lesson_code
LEFT JOIN teacher t
ON s.teacher_id = t.id
WHERE s.school_id = '" .$_GET['school_id']. "'
ORDER BY s.id DESC";
$exe = mysql_query($query) or die(mysql_error());
while($fetch = mysql_fetch_array($exe))
{
echo '<pre>'; print_r($fetch);
}