[Phpmyadmin-devel] How to execute a multi query?

Marc Delisle marc at infomarc.info
Wed May 25 16:51:31 CEST 2011


Rouslan Placella a écrit :
> On Wed, 2011-05-25 at 16:32 +0200, Michal Čihař wrote:
>> Hi
>>
>> Dne Wed, 25 May 2011 15:19:52 +0100
>> Rouslan Placella <rouslan at placella.com> napsal(a):
>>
>>> Yes, I am generating the query on the fly, but I'm not sure how I am
>>> supposed to split it. Here's a simple example that I don't know how to
>>> handle:
>>>
>>> CREATE PROCEDURE `proc`(INOUT p INT(10))
>>> BEGIN
>>> SELECT 10 into p;
>>> END//
>>>
>>> If I first try to execute
>>>
>>> DELIMITER //
>>>
>>> then PMA_DBI_query straight away returns the following error:
>>>
>>> ERROR: Unknown Punctuation String @ 11
>>> STR: //
>>> SQL: DELIMITER //
>>>
>>> Thanks again for any help with this.
>> You don't have to split it at all in this case :-). DELIMITER is not
>> handled by server for single query, so all you have to do is to issue:
>>
>> CREATE PROCEDURE `proc`(INOUT p INT(10))
>> BEGIN
>> SELECT 10 into p;
>> END
>>
>> For displaying purposes, DELIMITER statement might be added, so that
>> user can copy and paste the query.
> 
> OMG, you're right, that worked just fine! And I just spend like 3 hours
> trying to figure out the delimiter business...
> 
> Thanks Michal, that was most helpful.
> 
> Rouslan

This whole DELIMITER thing is tricky: it's not part of the SQL syntax 
(so we cannot send it to server), it's only understood by the mysql 
client. So we emulated it in the import logic.


-- 
Marc Delisle
http://infomarc.info




More information about the Developers mailing list