PHP warten, bis MYSQL fertig zu stellen query

Ich habe zum ausführen von mysql-Abfragen in einer for-Schleife wie diese

$date_start = '2017-01-01';
$date_end = '2017-01-10';
while ($date_start < $date_end){
   $sql ("SELECT id FROM mytable WHERE mydate = '$data_start'"); [<--edit]
   $result = $db->query($sql);
   $f = $result->fetch();
   echo 'result is : '.$f['id'];
   $date_start = date('Y-m-d', strtotime($date_start. ' + 1 days'));
}

ID Ergebnis war immer mit den ersten $date_start, dann die erste sql-Abfrage…

Wie zu warten, php für mysql zu beenden Abfrage?

BEARBEITEN.:

Ok, es war ein Fehler, wenn ich die Schleife hier, sondern ist eine Ablenkung! Es ist kein copy/paste

Nach diesem schrieb ich

ID result was always related to first $date_start, then first sql query...

Dies bedeutet, dass nicht ein code-problem, die Schleife funktioniert, sonst habe ich ein php-Fehler!

Werde ich versuchen mit MYSQL error reporting

  • Einfach mal auf die Hervorhebung Farbe. Es gibt offensichtlich einen string-literal-Problem in diesem code
  • PHP wird immer „warten“ für eine Abfrage zu beenden, bevor es weiter das Skript ausgeführt wird. Das ist, wie PHP funktioniert, Sie nichts haben zu kümmern.
InformationsquelleAutor FireFoxII | 2017-02-09



One Reply
  1. 3

    Haben Sie ein string-literal, das ist nicht richtig geschlossen, und die Zuordnung der Abfrage an die variable $sql ist falsch. Daher wird das script Abstürzen

    //while testing specially if you are developing on a live server
    //that will have error reporting to the screen turned off
    //add these 4 lines so you see your errors on the browser page
    ini_set('display_errors', 1); 
    ini_set('log_errors',1); 
    error_reporting(E_ALL); 
    mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
    
    $date_start = '2017-01-01';
    $date_end = '2017-01-10';
    while ($date_start < $date_end){
        $sql = "SELECT id FROM mytable WHERE mydate = '$data_start'";
        //--new character added to close the literal------------->^
        //() removed
        $result = $db->query($sql);
        //check for errors
        if ( !$result) {
            echo $result->error;
            exit;
        }
        $f = $result->fetch();
        echo 'result is : '.$f['id'];
        $date_start = date('Y-m-d', strtotime($date_start. ' + 1 days'));
    }

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.