Vous ne le faites probablement pas besoin de changer le délimiteur.
Le délimiteur est nécessaire dans la CLI pour indiquer où se termine l'instruction SQL, car la CLI continuera à lire et à exécuter d'autres instructions jusqu'à ce que vous lui disiez de s'arrêter (par exemple, avec exit
ou Contrôle-D). Mais ce qu'il lit en réalité n'est qu'un flux de caractères; il doit en quelque sorte comprendre où se termine une instruction et où commence la suivante. C'est ce que fait le délimiteur.
En PHP, chaque appel de fonction exécute une instruction. Il ne peut y avoir plusieurs instructions dans un appel de fonction, il n'est donc pas nécessaire de trouver un moyen de les délimiter. L'instruction est la chaîne entière. C'est le cas de l'ancien mysql_query
ainsi que le nouveau mysqli_query
et AOP. Bien sûr, il y a mysqli_multi_query
si vous voulez vraiment passer plusieurs requêtes à une seule fonction.
Dans le cas d'une procédure stockée/déclencheur/fonction/etc., il peut y avoir plusieurs instructions, mais cela est géré par MySQL lui-même (et est toujours ;
, AUTANT QUE JE SACHE). Donc, en ce qui concerne PHP, c'est toujours une déclaration.
Le paramètre de délimiteur que vous voyez dans phpMyAdmin est probablement utilisé pour séparer les instructions, et est probablement fait dans le code PHP. Il doit le faire car il accepte les entrées utilisateur composées de plusieurs instructions, mais ne doit transmettre qu'une seule instruction par appel de fonction. (Je n'ai pas vérifié le code phpMyAdmin pour en être complètement sûr).