Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/236.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP报价问题_Php_Sql_Syntax - Fatal编程技术网

PHP报价问题

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

我有一个名为user的文本字段和一个submit按钮,该按钮显示一个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;
}
但我得到了一个错误:

$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;
}