MySQL 错误 #1064 中的语法错误

Syntax error in MySQL Error #1064

我正在尝试执行以下查询:

DELIMITER $$
USE user_access
CREATE PROCEDURE check_user_login(IN username VARCHAR(50),IN `password` VARCHAR(50))
BEGIN
SELECT 1
FROM user_access
WHERE UserName='$username' AND `Password`='$password'
END$$
DELIMITER ;

但是出现这个错误:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'CREATE PROCEDURE check_user_login(IN username VARCHAR(50),IN `password` VARCHAR(' at line 2

查询有什么问题?

在我看来,使用 user_accesscreate procedure 之间没有区别,也许这会对您有所帮助:

USE user_access;
DELIMITER $$
CREATE PROCEDURE ...

另外,我觉得你的参数语法不对,你不希望 '$username' 只是 username 应该这样做,因为它是你的参数名称。

您在两个地方错过了 ;

DELIMITER $$
USE user_access; -- you missed the semicolon
CREATE PROCEDURE check_user_login(IN username VARCHAR(50), IN `password` VARCHAR(50))
BEGIN
    SELECT 1
    FROM `user_access`
    WHERE UserName = username AND `Password` = `password`; -- you missed the semicolon
END$$
DELIMITER ;