0

PHP入力したシリアルコードに基づいてデータベースから情報を取得するフォームを作成しています。このエラーが発生しています。変数を参照する代わりに、変数を移動させたり、if ステートメント内で $result 関数を呼び出したりしました。

エラー: 警告: mysqli_num_rows() は、パラメーター 1 が mysqli_result であると想定しています。これは、22 行目の /home/content/98/10339998/html/scripts/stories.php で指定されたブール値です。

20 ~ 22 行目:

$result = mysqli_query($con, $query);

if (mysqli_num_rows($result)) 

完全なコード:

<?php
if ( $_POST ) {
    $username="*******";
    $password="*******";
    $con = mysqli_connect("storycodes.db.10339998.hostedresource.com",$username,$password);

    if (!$con) {
        die('Could not connect: ' . mysqli_error());
    }

    mysqli_select_db($con, "storycodes");

    $code = $_POST['codeInput'];
    $code = mysqli_escape_string($con, htmlspecialchars($code)); //May not acually need htmlspecialchars
    $query = "SELECT story,video FROM `storycodes` WHERE `code` = $code";
    $result = mysqli_query($con, $query);

    if (mysqli_num_rows($result)) {
        $row = mysqli_fetch_assoc($result);
        mysqli_free_result($result); 
        extract($row);
        echo $story . $video;
   } else {
       echo "No Data Found. Please check your serial code to ensure that you have not incorrectly entered it. If the code is correct please email the website administrator for further assistance";
   }        

    mysqli_close($con);
}
?>
4

2 に答える 2

1

クエリが構文エラーを返す場合、または何らかの理由で実行に失敗した場合、ブール値を返しますFALSE。ブール値を に渡そうとするmysqli_num_rowsと、警告が表示されます。

クエリでは、 を囲む引用符が抜けています$code。代わりに使用するだけ'$code'で、エラーは修正されるはずです。

于 2013-02-07T05:42:11.530 に答える
1

クエリに問題があります。mysqli_query($con, $query) が false を返しています。$code はおそらく引用符で囲む必要があります。

于 2013-02-07T05:48:50.443 に答える