1

我正在尝试在 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 名称、表名列名和其他不同的引号组合中加上单引号但没有结果,然后我遇到了这个链接并尝试更改分隔符但没有结果。你能帮忙吗?

解决方案:

对不起伙计们我的坏。我添加了分隔符,为我解决了这个问题。

DELIMITER ;;

CREATE PROCEDURE `Authenticate_UserByEmailID`(strUsername VARCHAR(45), strPassword VARCHAR(45))
BEGIN
    SELECT * FROM DBCompany_samsonusac517644.users 
    WHERE Username = strUsername AND Password = strPassword;
END ;;
4

2 回答 2

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)
于 2012-11-08T14:17:34.407 回答
0

以上所有答案都是做出某些假设。1and1 存在基本问题,某些其他托管服务提供商正在使用非常旧的 phpMyAdmin 版本,并且存在定义分隔符的问题;并且无法从 phpMyAdmin 更改它。一些供应商已经继续前进,因此他们不会面临这个问题。但如果你这样做,那么以下是方法 -

  1. 在托管服务提供商上创建一个新的 PHPMyAdmin。附加链接让您了解http://internetbandaid.com/2009/04/05/install-phpmyadmin-on-1and1/
  2. 通过能够从您的桌面访问您的托管服务提供商 mySQL 的复杂途径。这很复杂,但如果您是认真的开发人员,那是最好的。这是一个链接http://franklinstrube.com/blog/remote-mysql-administration-for-1and1/

希望这可以帮助

于 2013-11-28T16:37:24.897 回答