mysql_fetch_array()/mysql_fetch_assoc()/mysql_fetch_row()/mysql_num_rows など... パラメータ 1 はリソースである必要があります 質問する

mysql_fetch_array()/mysql_fetch_assoc()/mysql_fetch_row()/mysql_num_rows など... パラメータ 1 はリソースである必要があります 質問する

MySQL テーブルからデータを選択しようとしていますが、次のいずれかのエラー メッセージが表示されます。

mysql_fetch_array() はパラメータ 1 がリソースであることを期待しており、ブール値が与えられています

これが私のコードです:

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

$result = mysql_query('SELECT * FROM Users WHERE UserName LIKE $username');

while($row = mysql_fetch_array($result)) {
    echo $row['FirstName'];
}

ベストアンサー1

クエリはさまざまな理由で失敗する可能性があります。その場合、mysql_* と mysqli 拡張機能の両方がそれぞれfalseのクエリ関数/メソッドから戻ります。そのエラー状態をテストし、それに応じて処理する必要があります。

mysql_ 拡張子:

mysql_関数は非推奨ですPHP バージョン 7 では削除されました。

$resultに渡す前に確認してください。クエリが失敗したことが原因でmysql_fetch_arrayあることがわかります。考えられる戻り値とその対処方法については、[ ][1] ドキュメントを参照してください。falsemysql_query

$username = mysql_real_escape_string($_POST['username']);
$password = $_POST['password'];
$result = mysql_query("SELECT * FROM Users WHERE UserName LIKE '$username'");

if($result === FALSE) { 
    trigger_error(mysql_error(), E_USER_ERROR);
}

while($row = mysql_fetch_array($result))
{
    echo $row['FirstName'];
}

おすすめ記事