-3

重複の可能性:
警告: mysql_fetch_array() は、パラメーター 1 がリソースであると想定しており、problema con el wile で指定されたブール値

login form を実行すると、次のエラーが発生します。

警告: mysql_fetch_assoc() は、パラメーター 1 がリソースであると想定します。22 行目の C:\xampp\htdocs\login\check.php で指定されたブール値です。

  <?php

  include_once ("function.php");

  $username = $_POST['tfuser'] ;
  $password = $_POST['tfpass'] ;

  if (isset($username) && isset($password)){

    $link = mysql_connect('localhost','root','') or die ('error in connecting to db');
    mysql_select_db('login',$link) or die ('error select db');

    $sql = "select from * from administration 
    where username='$username' and password='$password'";

    $result = mysql_query($sql,$link);

    if (mysql_fetch_assoc($result)){
         //login to panel 
         redirect("panel.php");
    } else {
        //back to login page
    }

  } else {
      //back to login page
      redirect("index.php");
  }

  ?>

そして、どうすればこのエラー表示を防ぎ、 Mysql_fetch_assoc エラーを防ぐことができますか?

4

2 に答える 2

1

SQL インジェクションについてお読みください。

SQL ステートメントの実行が失敗したため、次のエラーが発生しています。

Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\login\check.php on line 22

次の SQL クエリ:

$result = mysql_query($sql,$link);

戻りますFALSE。そのため、使用するmysql_fetch_assoc()と警告が返されます。

これを修正するに$resultは、mysql リソースが含まれていることを確認してください。これを行う 1 つの方法は、SQL クエリが失敗した場合にスクリプトの実行を停止することです。あなたはこれを行うことができます:

$result = mysql_query($sql,$link) OR die(mysql_error());

これにより、SQL の実行が失敗した理由が表示されます。

于 2012-10-27T12:55:34.010 に答える
0

あなたのmysqlクエリはfalseで、結果はエラーを示します警告:mysql_fetch_assoc()は、パラメーター1がリソースであると想定しています。22行目のC:\ xampp\htdocs\login\check.phpで指定されたブール値です。間違った方法を使用しているため、これを取得しました$result = mysql_query($sql,$link);//間違った方法 $result = mysql_query($sql);//正しい方法

このエラーは、クエリが結果をフェッチできないために発生しました。これらのタイプのエラーを処理する最良の方法は、クエリをエコーし​​、ブラウザ画面でクエリの出力を確認することです。クエリ部分を切り取り、SQL に貼り付けて実行します。エラーが返されることを確認してください。 ....

于 2012-10-27T13:21:13.987 に答える