将包含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
不是a2ѭ关键字:它是客户端(例如
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 $$减速中。 我的建议是停止使用$$作为分隔符     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...