Você provavelmente não precisa alterar o delimitador.
O delimitador é necessário na CLI para dizer onde a instrução SQL termina, porque a CLI continuará lendo e executando mais instruções até que você diga para ela parar (por exemplo, com
exit
ou Controle-D). Mas o que ele realmente lê é apenas um fluxo de caracteres; de alguma forma, ele precisa descobrir onde uma instrução termina e a próxima começa. É isso que o delimitador faz. No PHP, cada chamada de função executa uma instrução. Não pode haver várias instruções em uma chamada de função, portanto, não há necessidade de uma maneira de delimitá-las. A instrução é a string inteira. Isso vale para o antigo
mysql_query
bem como o mais novo mysqli_query
e DOP. Claro, existe mysqli_multi_query
se você realmente deseja passar várias consultas para uma função. No caso de um procedimento armazenado/trigger/função/etc., pode haver várias instruções, mas isso é tratado pelo próprio MySQL (e é sempre
;
, ATÉ ONDE SEI). Então, no que diz respeito ao PHP, isso ainda é uma declaração. A configuração do delimitador que você está vendo no phpMyAdmin provavelmente está sendo usada para separar as instruções e provavelmente está sendo feita no código PHP. Ele precisa fazer isso porque está aceitando a entrada do usuário que consiste em várias instruções, mas deve passar apenas uma instrução por chamada de função. (Eu não verifiquei o código phpMyAdmin para ter certeza disso).