PHP报价问题
我有一个名为user的文本字段和一个submit按钮,该按钮显示一个Json字符串,其中包含数据库中具有该id的用户的详细信息。我有以下代码:PHP报价问题,php,sql,syntax,Php,Sql,Syntax,我有一个名为user的文本字段和一个submit按钮,该按钮显示一个Json字符串,其中包含数据库中具有该id的用户的详细信息。我有以下代码: $UserID = mysql_real_escape_string($_POST['User']); $UserCoords_Query = "Select Accuracy, Longitude, Latitude, Timestamp FROM UserDetails
$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;
}
但我得到了一个错误:
$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;
}
警告:mysql\u num\u rows()希望参数1是第29行/home/roseanne/public\u html/display\u Coords.php中给出的资源布尔值。
$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;
}
我最近将数据库中的userID类型从int改为text。它作为一个int起作用,但自更改后就没有了。有人能看到引号问题吗?
Timestamp
是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 (mysql_num_rows($UserCoords_result) == 0) {
echo "There are no users with an id of ". $UserID;
}
$UserCoords_Query = "Select `Accuracy`, `Longitude`, `Latitude`, `Timestamp`
FROM UserDetails
WHERE UserId = '".$UserID."'";
mysql\u query
失败时返回false,因此您必须检查它。在您的例子中,它返回了false
——您的查询失败,但您仍然将该false
值传递到函数mysql\u num\u rows
,这引发了一个错误
$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;
}
另外,您应该使用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 (mysql_num_rows($UserCoords_result) == 0) {
echo "There are no users with an id of ". $UserID;
}
$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;
}
$UserCoords\u result
未被设置为函数mysql\u num\u rows()
的有效资源。这可能是因为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 (mysql_num_rows($UserCoords_result) == 0) {
echo "There are no users with an id of ". $UserID;
}
另外,在您开发此功能的同时,我建议您迁移到mysqli或DBO,因为从PHP5.5开始,mysql_uu函数正在贬值
$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;
}
:)您确定已正确连接并选择了数据库吗?您正在使用并且应该使用。@Yousf是的,仍然连接!我认为这不是问题所在,因为当我在phpmyadmin中运行查询时,它是有效的。这是一个引用问题:/@user2363025这就是问题所在,因为您的查询失败。@user2363025请参阅带引号的编辑查询。我已编写了连接到数据库的代码,在更改数据类型之前,查询已运行。我认为查询中的$UserId需要加引号,但我不知道如何使用这种语法。谢谢你的建议!:)排序完毕后,我需要更改为:$UserCoords_Query=“从UserDetails中选择精度、经度、纬度、时间戳,其中UserId=”””。$UserId。“”;
$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;
}