Mysql
 sql >> Base de données >  >> RDS >> Mysql

Avertissement php mysql_fetch_assoc

Généralement, les fonctions mysql_* sont utilisées comme suit :

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

Si vous passez quelque chose à mysql_fetch_assoc qui n'est pas une ressource de résultat MySQL (qu'il s'agisse d'une chaîne, d'un objet ou d'un booléen), la fonction se plaindra qu'elle ne sait pas quoi faire avec le paramètre ; c'est exactement ce que vous voyez.

Un piège courant :vous obtenez cet avertissement si vous transmettez quelque chose (autre qu'une chaîne de requête valide) à 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