No lo he probado, pero no me sorprenderá mysqli_multi_query()
esperando tener el mismo delimitador de cada consulta. ¿Intente empaquetar la creación del procedimiento almacenado en una sola consulta, sin usar el modificador DELIMITER?
Así que en lugar de
<?php
$results = mysqli_multi(
'DELIMITER $$
USE `dbname`$$
CREATE PROCEDURE `procname`(IN inputparameters)
BEGIN
... procedure goes here
;
END$$
DELIMITER ;
');
?>
Solo haz esto
<?php
$result = mysqli_query('CREATE PROCEDURE `procname`(IN inputparameters) BEGIN ...; END');
Y dinos si funciona :)