[英]Pass mysql query containing mysql function to 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' )
在三个单独的数据库调用中。
你有DECLARE NextID INT; 和RETURN NextID; 和另一条线; 在DELIMITER $$减速内。
我的建议是停止使用$$作为分隔符
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.