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

mysqli mehrere Abfragen - Set-Variable erzeugt booleschen Fehler/wie überspringe ich das?

Das liegt daran, dass mysql_query -Funktion akzeptiert nur eine Abfrage, aber Sie haben ihr zwei gegeben, die durch ein Semikolon getrennt sind. Versuchen Sie es mit:

  1. Jede Abfrage separat ausführen (weiß nicht, ob das funktioniert):

    mysql_query( "SET @N=-1" );
    mysql_query( "SELECT `id`, (@N:[email protected]+1) AS `mycount` FROM `mydb`" );
    
  2. Mit mysqli mit der multi_query Funktion (oder ein PDO ). Äquivalent, falls vorhanden).

Um Ihre aktualisierte Frage zu beantworten:Überprüfen Sie die PHP-Manpage für multi_query. Ich denke, Sie sollten mysqli::next_result verwenden . So etwas im prozeduralen Stil:

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);
}