-1

user というテキスト フィールドと、その ID を持つデータベース内のユーザーの詳細を含む Json 文字列を表示する送信ボタンがあります。次のコードがあります。

$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.

最近、データベースのユーザー ID のタイプを int から text に切り替えました。int として機能しましたが、変更後は機能しませんでした。誰でも引用符の問題を見ることができますか?

4

3 に答える 3

0

Timestampは の予約語です。その前後でmysql使用します`

$UserCoords_Query  = "Select `Accuracy`, `Longitude`, `Latitude`, `Timestamp`
                  FROM UserDetails
                  WHERE UserId = '".$UserID."'";
于 2013-05-09T10:31:47.707 に答える
0

mysql_query失敗すると false を返すので、確認する必要があります。あなたの場合は返されましたfalse-クエリは失敗しましたが、このfalse値を functionmysql_num_rowsに渡したため、エラーが発生しました。

また、推奨されていないmysqli_*asを使用する必要があります。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;
}
于 2013-05-09T10:31:57.663 に答える