Ich hatte bereits weiter Unten das Problem beschrieben. Vielleicht etwas zu ausführlich und langatmig. Es geht darum mehrere MySQL Prozeduren nacheinander aus einem PHP 7 Skript aufzurufen. Hier gibt es verschiedene APIs wobei in mehreren Quellen die "mysqli" API empfohlen wird. Nun gibt es für diese API eine Library mit Routinen mit deren Hilfe man mit einer MySQL Datenbank aus PHP heraus arbeiten kann. Um SQL Befehle bei einer bereits bestehenden Datenbank Verbindung abzusetzen z.B. "mysqli_query" oder "mysql_stmt_execute". Mit dem "mysql_query" klappt das einmal und dann nicht wieder, solange die Verbindung besteht. Beim absetzen eines zweiten Querys erhält man die folgende Fehlermeldung. "query sql3 failed: Commands out of sync; you can't run this command now". Das soll damit zu tun haben, das der Ergebnispuffer nicht geleert und als frei markiert wurde. Ich habe verschiedene Empfehlungen aus dem Internet ausprobiert, bin aber immer wieder auf denselben Fehler gelaufen. Ein Beispiel:
Außerdem liest man wiedersprüchliche Infos. Aus Einigen geht hervor, das es gar nicht möglich sei mit "mysqli_query" MySQL Prozeduren aufzurufen. Nur mit "mysql_stmt_execute" habe ich es auch versucht und bin nicht zum Ziel gekommen. Einziger Unterschied ich bekomme keine aussagefähigen Meldungen. So nun will ich enden und nicht wieder unlesbar lang werden. Kann mir jemand einen Tipp geben, wie man aus PHP mehrere MySQL Prozeduren aufrufen kann? Ich wäre auch bereit eine andere API wie z.B. PDO zu verwenden. Es sollte nur klappen. Ich bin bislang noch nicht geneigt meine MySQL Prozeduren umzuschreiben und in PHP - Code einzubetten.
Vielen Dank für mögliche Tipps im voraus.
PHP-Code:
$sql_3 = "call p_summe_verkaeufe();";
echo "sql_3=",$sql_3,"<br>";
if(!($result = mysqli_query($conn,$sql_3))) {
die("query sql3 failed: " . mysqli_error($conn));
};
var_dump(mysqli_fetch_all($result));
mysqli_free_result($conn);
Vielen Dank für mögliche Tipps im voraus.
Kommentar