phpmyadmin存储过程错误

时间:2012-11-08 14:07:12

标签: mysql

我正在尝试在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 ;;

2 个答案:

答案 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更改它。一些提供商继续前进,因此他们不会遇到这个问题。但如果你这样做,那么方法 -

  1. 在托管服务提供商处创建新的PHPMyAdmin。附加链接为您提供了http://internetbandaid.com/2009/04/05/install-phpmyadmin-on-1and1/
  2. 的想法
  3. 通过复杂的路径,从您的dekstop访问您的托管服务提供商mySQL。它很复杂,但如果你是一个认真的开发人员,那就最好了。这是一个指向http://franklinstrube.com/blog/remote-mysql-administration-for-1and1/
  4. 的链接

    希望这有帮助