我目前正在尝试为网站编写登录/注册功能。当使用 php 连接到 mariadb 时,我想在新用户注册时调用一个存储过程将数据输入到数据库中。在 php 中调用该过程后,我想将两个变量(电子邮件和密码)加载到该过程中。然后程序应该将它们(如果我理解正确的话作为程序参数)写入相关表中。到目前为止我的代码的问题是,它似乎采用变量值(这很好)并尝试找到一个名为该值的列(这不是我想要的)而不是将这些值写入相关列(这是我想要的)。所以我相信,一旦我了解如何在 mariadb 的存储过程中正确声明变量,我就可以解决它?(是的,
我尝试在数据(电子邮件,密码)以及值(电子邮件,密码)周围放置单引号和双引号。我尝试了 INOUT 而不是 IN。我在 test() 和 VALUES() 中尝试将 @email 作为变量定义。我尝试更改 php 变量和存储过程参数的名称。
mariadb 存储过程:
DELIMITER //
MariaDB [login_input]> CREATE OR REPLACE PROCEDURE test(IN email
VARCHAR(150),IN password VARCHAR(255))
-> BEGIN
-> INSERT INTO data(email, password)
-> VALUES (email, password);
-> END;
-> //
mariadb 表:
MariaDB [login_input]> DESCRIBE data;
+----------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+-------+
| email | varchar(150) | NO | PRI | NULL | |
| password | varchar(255) | NO | | NULL | |
+----------+--------------+------+-----+---------+-------+
它目前是空的:
MariaDB [login_input]> SELECT * FROM data;
Empty set (0.00 sec)
相关php代码:预定义变量:
$email = "test";
$password = "test123";
使用 PDO 建立连接(如果那很重要)。
执行php代码时提示的错误:抱歉,未建立连接。SQLSTATE[42S22]: Column not found: 1054 Unknown column 'test' in 'field list'
慕后森