Mysql
 sql >> Datenbank >  >> RDS >> Mysql

PHP-Warnung mysql_fetch_assoc

Im Allgemeinen werden die mysql_*-Funktionen wie folgt verwendet:

$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
}

Wenn Sie etwas an mysql_fetch_assoc übergeben, das keine MySQL-Ergebnisressource ist (egal ob es sich um einen String, ein Objekt oder einen booleschen Wert handelt), beschwert sich die Funktion, dass sie nicht weiß, was sie mit dem Parameter machen soll; das ist genau das, was Sie sehen.

Ein häufiger Fallstrick :Sie erhalten diese Warnung, wenn Sie etwas (außer einer gültigen Abfragezeichenfolge) an mysql_query übergeben :

$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