0

こんにちは、フェッチ配列が 0 行のデータを提供するかどうかをチェックしていたので、num_row() を使用しますが、常にエラーが発生します

Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in C:\xampp\htdocs\PostImages\displayImages.php on line 8

HEREは私が使用した私のコードです

<?php
$con = mysqli_connect('127.0.0.1', 'root', '', 'test');

$id = mysqli_real_escape_string($con,$_REQUEST['id']);
$query = "SELECT image_posts FROM ratepicture WHERE id = ".$id."";
$image = mysqli_query($con, $query);

if(mysqli_num_rows($image) == 0)
{
$queryError = "SELECT image FROM error_pictures WHERE id = 1";
$error = mysqli_query($con, $queryError);
$error = mysqli_fetch_assoc($error);
$error = $error['image'];
echo $error;
}else
{
$image = mysqli_fetch_assoc($image);
$image = $image['image_posts'];
echo $image;
}


?>
4

5 に答える 5

2
... expects parameter 1 to be mysqli_result, boolean given in ...

ほとんどの場合、クエリの失敗が原因です。mysqli_query()失敗すると false を返すためです。

行/クエリを確認する必要があります:

$query = "SELECT image_posts FROM ratepicture WHERE id = ".$id."";

次のようなもの:

  • テーブル/ビューありますか?ratepictures
  • image_postsコラムはありますか?
  • のエスケープされた値は$id何ですか?
于 2013-04-24T07:07:10.537 に答える
0

変数を混同しました。

$id = mysqli_real_escape_string($con,$_REQUEST['id']);
$query = "SELECT image_posts FROM ratepicture WHERE id = ".$id."";
$rs = mysqli_query($con, $query);
if(mysqli_num_rows($rs) == 0) {

    $sql = "SELECT image FROM error_pictures WHERE id = 1";
    $rs = mysqli_query($con, $sql);
    $row = mysqli_fetch_assoc($rs);
    $image = $row['image'];
    echo $image;

}

$error1 つの変数 ( ) を使用してすべての戻り値に適用する理由がわかりません。変。

于 2013-04-24T07:07:00.497 に答える