sql >> データベース >  >> RDS >> Mysql

php警告mysql_fetch_assoc

    通常、mysql_*関数は次のように使用されます。

    $id = 1234;
    $query = 'SELECT name, genre FROM sometable WHERE id=' . $id;
    // $query is a string with the MySQL query
    $resource = mysql_query($query);
    // $resource is a *MySQL result resource* - a mere link to the result set
    while ($row = mysql_fetch_assoc($resource)) { 
        // $row is an associative array from the result set
        print_r($row);
        // do something with $row
    }
    

    MySQLの結果リソースではないもの(文字列、オブジェクト、ブール値)をmysql_fetch_assocに渡すと、関数はパラメーターの処理方法がわからないと文句を言います。これはまさにあなたが見ているものです。

    よくある落とし穴mysql_queryに(有効なクエリ文字列以外の)何かを渡すと、この警告が表示されます :

    $id = null;
    $query = 'SELECT name, genre FROM sometable WHERE id=' . $id;
    $res = mysql_query($query); 
    // $res === FALSE because the query was invalid
    // ( "SELECT name, genre FROM sometable WHERE id=" is not a valid query )
    mysql_fetch_assoc($res); 
    // Warning: don't know what to do with FALSE, as it's not a MySQL result resource
    


    1. SQLAlchemyを使用したPostgreSQLILIKEクエリ

    2. MySQLでグループ化されたランキングを実行する方法

    3. MySQL InnoDBは、外部キー制約ごとに常にインデックスを必要としますか?

    4. PHPを使用して1つのステートメントで複数のSQLクエリを実行する