繁体   English   中英

将包含mysql函数的mysql查询传递给PHP mysql_query

[英]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关键字:它是由客户端解析的保留字(如mysqlphpMyAdmin等),允许拆分查询。

您应该手动拆分并提交三个查询:

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM