我正在尝试在phpmyadmin网络托管服务器中运行SP但总是出现以下错误
1064 - 您的SQL语法出错;检查与MySQL服务器版本对应的手册,以便在第4行的''附近使用正确的语法
我试图运行的SP是:
CREATE PROCEDURE Authenticate_UserByEmailID(strUsername VARCHAR(45), strPassword VARCHAR(45))
BEGIN
SELECT * FROM users
WHERE users.Username = strUsername AND users.Password = strPassword;
END $$
我尝试在SP名称中添加单引号,表名列名称和带引号的其他不同组合,但没有结果我遇到了this link并尝试更改分隔符但没有结果。你能帮忙吗?
对不起伙计我的坏人。我添加了分隔符,为我解决了这个问题。
DELIMITER ;;
CREATE PROCEDURE `Authenticate_UserByEmailID`(strUsername VARCHAR(45), strPassword VARCHAR(45))
BEGIN
SELECT * FROM DBCompany_samsonusac517644.users
WHERE Username = strUsername AND Password = strPassword;
END ;;
答案 0 :(得分:5)
你错过了DELIMITER
mysql> delimiter $$
mysql> CREATE PROCEDURE Authenticate_UserByEmailID(strUsername VARCHAR(45), strPassword VARCHAR(45))
-> BEGIN
-> SELECT * FROM users
-> WHERE users.Username = strUsername AND users.Password = strPassword;
-> END $$
Query OK, 0 rows affected (0.01 sec)
答案 1 :(得分:0)
上述所有答案都在做出某些假设。 1and1中存在基本问题,而某些其他托管服务提供商正在使用phpMyAdmin版本,这些版本非常陈旧且存在定义分隔符的问题;并且无法从phpMyAdmin更改它。一些提供商继续前进,因此他们不会遇到这个问题。但如果你这样做,那么方法 -
希望这有帮助