我有一个名为user的文本字段和一个提交按钮,它显示一个Json字符串,其中包含数据库中具有该id的用户的详细信息。我有以下代码:
$UserID = mysql_real_escape_string($_POST['User']);
$UserCoords_Query = "Select Accuracy, Longitude, Latitude, Timestamp
FROM UserDetails
WHERE UserId =".$UserID;
$UserCoords_result = mysql_query($UserCoords_Query);
if (mysql_num_rows($UserCoords_result) == 0) {
echo "There are no users with an id of ". $UserID;
}
但我收到的错误是:
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in /home/roseanne/public_html/display_Coords.php on line 29.
我最近将数据库中的userID类型从int切换为text。它作为一个int工作但不是因为改变。任何人都可以看到报价问题吗?
答案 0 :(得分:0)
Timestamp
是mysql
中的保留字,在其周围使用`
$UserCoords_Query = "Select `Accuracy`, `Longitude`, `Latitude`, `Timestamp`
FROM UserDetails
WHERE UserId = '".$UserID."'";
答案 1 :(得分:0)
mysql_query
失败时返回false,因此您必须检查它。在您的情况下,它返回false
- 您的查询失败,但您仍然将此false
值传递给函数mysql_num_rows
,这会引发错误。
此外,您应该使用mysqli_*
,因为mysql_*
已被弃用。
$UserID = mysql_real_escape_string($_POST['User']);
$UserCoords_Query = "Select `Accuracy`, `Longitude`, `Latitude`, `Timestamp`
FROM UserDetails
WHERE UserId =".$UserID;
$UserCoords_result = mysql_query($UserCoords_Query);
if ($UserCoords_result && mysql_num_rows($UserCoords_result) >= 1) {
//Fetch results
} else {
echo "There are no users with an id of ". $UserID;
}
答案 2 :(得分:0)
$UserCoords_result
未被设置为函数mysql_num_rows()
的有效资源。这可能是由于mysql_query试图在没有您首先创建与数据库的连接的情况下运行。我需要查看更多代码才能确定。
此外,在您开发此内容时,我建议您转移到mysqli或DBO,因为自PHP5.5起,mysql_函数已被折旧
:)