Das DELIMTER
benötigen Sie höchstwahrscheinlich nicht Befehl. Das gehört zu MySQL-zentrischen Client-Programmen.
Bitte versuchen Sie es mit einfachen alten Semikolons:
if (!$mysqli->query("DROP PROCEDURE IF EXISTS p") ||
!$mysqli->query("CREATE PROCEDURE p(IN id_val INT) BEGIN INSERT INTO test(id) VALUES(id_val); END;")) {
echo "Stored procedure creation failed: (" . $mysqli->errno . ") " . $mysqli->error;
}
und lassen Sie PHP sich um die Begrenzung kümmern
ACHTUNG
Ich habe den obigen Code von http://php.net/manual /en/mysqli.quickstart.stored-procedures.php