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

mysqli plusieurs requêtes - set variable produit une erreur booléenne/comment ignorer cela ?

C'est parce que mysql_query La fonction n'acceptera qu'une seule requête, mais vous lui en avez donné deux, séparées par un point-virgule. Essayez soit :

  1. Exécuter chaque requête séparément (je ne sais pas si cela fonctionnera) :

    mysql_query( "SET @N=-1" );
    mysql_query( "SELECT `id`, (@N:[email protected]+1) AS `mycount` FROM `mydb`" );
    
  2. Utiliser mysqli avec le multi_query fonction (ou un PDO équivalent s'il y en a un).

Pour répondre à votre question mise à jour :consultez la page de manuel PHP pour multi_query. Je pense que vous voudrez utiliser mysqli::next_result . Quelque chose comme ça, en utilisant le style procédural :

mysqli_multi_query($link, $query);
mysqli_next_result($link);

if ($result = mysqli_store_result($link)) {
    while ($row = mysqli_fetch_row($result)) {
        printf("%s\n", $row[0]);
    }
    mysqli_free_result($result);
}