通MySQL查询包含MySQL功能,PHP的mysql_query
我有这样的代码通MySQL查询包含MySQL功能,PHP的mysql_query
DELIMITER $$
DROP FUNCTION IF EXISTS `GetNextID` $$
CREATE FUNCTION `GetNextID`() RETURNS INT DETERMINISTIC
BEGIN
DECLARE NextID INT;
SELECT MAX(articleID) + 5 INTO NextID FROM table_article;
RETURN NextID;
END$$
DELIMITER ;
INSERT INTO table_article (articleID, articleAlias) VALUES (GetNextID(), 'TEST');
执行在phpMyAdmin OK,但是当我通过这个查询MYSQL_QUERY PHP函数/ 我想这是因为该函数的失败和分号。我该怎么办?
DELIMITER
不是MySQL
关键字:这是一个保留字客户端解析(如mysql
,phpMyAdmin
等),它可以分裂查询。
您应该手动拆分并提出三个疑问:
DROP FUNCTION IF EXISTS `GetNextID`
,
CREATE FUNCTION `GetNextID`() RETURNS INT DETERMINISTIC
BEGIN
DECLARE NextID INT;
SELECT MAX(articleID) + 5 INTO NextID FROM table_article;
RETURN NextID;
END
和
INSERT INTO table_article (articleID, articleAlias) VALUES (GetNextID(), 'TEST')
在三到数据库单独调用。
谢谢,这工作! – dr3w 2011-04-14 11:53:44
所以标记为正确... – dogmatic69 2011-04-14 12:15:37
是的,我打算,但*告诉我等待3分钟,虽然;)在这里你走... ... – dr3w 2011-04-14 12:26:53
你有DECLARE NextID INT;并返回NextID;和另一条线;在DELIMITER $$减速范围内。
我的建议是停止使用$$作为分隔符
改为使用什么?你能以正确的方式重写代码吗? =] – dr3w 2011-04-14 11:47:17
这将有助于发布你的代码和你得到的错误。 – jackbot 2011-04-14 11:45:26