将包含mysql函数的mysql查询传递给PHP mysql\u查询
我有这个密码将包含mysql函数的mysql查询传递给PHP mysql\u查询,php,mysql,function,Php,Mysql,Function,我有这个密码 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_
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\u query PHP函数时失败/
我猜这是因为函数和分号。我该怎么办?您必须声明NextID INT;并返回NextID;和另一条线;在分隔符$$内
我的建议是停止使用$$作为分隔符
分隔符
不是一个MySQL
关键字:它是一个由客户端解析的保留字(如MySQL
,phpMyAdmin
等),允许拆分查询
您应该手动拆分它并提交三个查询:
DROP FUNCTION IF EXISTS `GetNextID`
,
及
在对数据库的三次单独调用中。发布您的代码和收到的错误会有帮助。改用什么?你能用正确的方法重写代码吗?=]是的,我本来想去的,但是stackoverflow让我等3分钟;)干得好。。。
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' )