Lo más probable es que no necesite el DELIMTER
dominio. Eso pertenece a los programas cliente centrados en MySQL.
Intente con puntos y comas simples:
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;
}
y deja que PHP se preocupe por delimitar
ADVERTENCIA
Obtuve el código anterior de http://php.net/manual /es/mysqli.quickstart.procedimientos-almacenados.php