我有这个从 PHP 脚本调用的存储过程。它有几个 select 语句和一个 delete 语句。除了不执行 DELETE 查询外,一切正常。它被忽略了!请帮忙。谢谢
CREATE PROCEDURE `proc_name`(IN id INT, IN type CHAR(50))
DETERMINISTIC
COMMENT 'procedure'
BEGIN
DECLARE LEGACY_EN_ID INT;
SET IN_ID = id;
SELECT IF(e.legacy_id > 0, e.legacy_id, 0) INTO LEGACY_EN_ID FROM tablename e WHERE e.id = IN_ID LIMIT 1;
/* Delete record if it exists */
DELETE
FROM tablename
WHERE entityID = LEGACY_EN_ID;
最佳答案
- 检查执行存储过程的用户是否有权执行该操作。
- 这可以通过使用同一用户直接通过 mysql 命令行连接并尝试执行在存储过程中生成的查询来检查。
- 或者创建一个简单的 PHP 脚本并使用 mysql_query 直接调用 delete sql。如果成功,那么您就可以访问了。
关于php - MySQL 存储过程忽略 DELETE 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24455635/