Php 具有多个更新的MySQL过程
有人知道这里出了什么问题吗- 以下代码在我的本地服务器上工作-使用MySQL workbench执行:-Php 具有多个更新的MySQL过程,php,mysql,stored-procedures,Php,Mysql,Stored Procedures,有人知道这里出了什么问题吗- 以下代码在我的本地服务器上工作-使用MySQL workbench执行:- DELIMITER $$ CREATE DEFINER=`root`@`localhost` PROCEDURE `namechange`(IN oldname VARCHAR(20),IN newname VARCHAR(20)) BEGIN UPDATE liquidfinger.users SET username = newname WHERE username = oldname
DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `namechange`(IN oldname VARCHAR(20),IN newname VARCHAR(20))
BEGIN
UPDATE liquidfinger.users SET username = newname WHERE username = oldname LIMIT 1;
UPDATE liquidfinger.markers SET username = newname WHERE username = oldname;
UPDATE liquidfinger.photos SET user = newname WHERE user = oldname;
UPDATE liquidfinger.mail SET to_name = newname WHERE to_name = oldname;
UPDATE liquidfinger.mail SET from_name = newname WHERE from_name = oldname;
END$$
DELIMITER ;
但是我不能在我的网站上创建这个过程,这个网站由GoDaddy托管,使用phpMyAdmin。
我收到的错误消息如下:-
MySQL说:#1064-您的SQL语法有错误;请检查
与右边的MySQL服务器版本相对应的手册
使用“UPDATE liquidfinger.markers SET username=newname”附近的语法
其中username=oldname;在第3行“向上”
第二次更新始终是问题开始的点,因此它不喜欢多个更新。
GoDaddy MySQL服务器版本为:-服务器版本:5.5.41-cll-lve-MySQL社区服务器(GPL)
最新的MySQL版本是5.6.25
有什么想法吗
谢谢 好吧,我要让它工作了。我以前尝试过在phpMyAdmin中使用SQL选项卡,但它不起作用,但我再次尝试,省略了“DEFINER=…”,它起了作用。因此,我只能断定phpMyAdmin(?)中存在某种缺陷,但之前我曾尝试使用MySQL workbench导出和导入sql文件,但也没有成功(?)
案例结束-我不确定是否应该勾选我自己的答案?我的结尾没有错误,过程执行得很好…您可以尝试从过程中删除DEFINER=
root
@localhost
?Aman-您无法以phpMyAdmin提供的形式控制它。仅有两个选项是“定义器”和“调用器”。请尝试使用SQL选项卡,并在运行查询时创建它。。