Prawdopodobnie nie trzeba zmienić ogranicznik.
Ogranicznik jest potrzebny w CLI, aby powiedzieć, gdzie kończy się instrukcja SQL, ponieważ CLI będzie nadal czytać i wykonywać więcej instrukcji, dopóki nie powiesz mu, aby się zatrzymał (np. za pomocą exit
lub Control+D). Ale to, co faktycznie czyta, to tylko strumień znaków; musi jakoś dowiedzieć się, gdzie kończy się jedno zdanie, a zaczyna następne. To właśnie robi ogranicznik.
W PHP każde wywołanie funkcji wykonuje jedną instrukcję. W jednym wywołaniu funkcji nie może być wielu instrukcji, więc nie ma potrzeby ich ograniczania. Oświadczenie to cały ciąg. Dotyczy to starego mysql_query
jak również nowszy mysqli_query
i ChNP. Oczywiście istnieje mysqli_multi_query
jeśli naprawdę chcesz przekazać wiele zapytań do jednej funkcji.
W przypadku procedury składowanej/trigger/function/itd. może być wiele instrukcji, ale jest to obsługiwane przez sam MySQL (i zawsze jest to ;
, AFAIK). Jeśli chodzi o PHP, to wciąż jest jedno stwierdzenie.
Ustawienie separatora, które widzisz w phpMyAdmin, jest prawdopodobnie używane do dzielenia instrukcji i prawdopodobnie jest wykonywane w kodzie PHP. Musi to zrobić, ponieważ akceptuje dane wejściowe użytkownika składające się z wielu instrukcji, ale musi przekazać tylko jedną instrukcję na wywołanie funkcji. (Nie sprawdziłem kodu phpMyAdmina, aby być tego całkowicie pewnym).