sql >> Databasteknik >  >> RDS >> Mysql

mysqli multipla queries - set variabel ger booleskt fel/hur hoppar man över detta?

Det beror på att mysql_query funktion accepterar bara en fråga, men du har gett den två, åtskilda med semikolon. Prova antingen:

  1. Kör varje fråga separat (vet inte om detta kommer att fungera):

    mysql_query( "SET @N=-1" );
    mysql_query( "SELECT `id`, (@N:[email protected]+1) AS `mycount` FROM `mydb`" );
    
  2. Använda mysqli med multi_query funktion (eller en PDO motsvarande om det finns en).

För att svara på din uppdaterade fråga:kolla PHP-manualsidan för multi_query. Jag tror att du kommer att vilja använda mysqli::next_result . Något i stil med detta, med procedurstil:

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


  1. INFOGA ... PÅ DUBLIKATNYCKEL (gör ingenting)

  2. Vad är skillnaden mellan att använda en korskoppling och att sätta ett kommatecken mellan de två tabellerna?

  3. mySQL regex i where-satsen

  4. När ska jag använda en tabellvariabel kontra temporär tabell i sql-servern?