每当用户注册时,我都试图将数据插入到数据库中的用户表中,但是,我在这样做时遇到了麻烦..
我试图在我的 index.php 文件(完美运行)上进行测试:
if(empty($_POST['post'])) {
mysqli_query($conn,"INSERT INTO users (fname,lname,group) VALUES ('John','Doe',1)");
}
然后我尝试在我的注册表中这样做,但效果不佳,我试图找出原因......
这是“users.php”文件中的注册函数:
function register_user($register_data) {
array_walk($register_data, 'array_sanitize');
$register_data['password'] = md5($register_data['password']);
$fields = '`' . implode('`, `', array_keys($register_data)) . '`';
$data = '\'' . implode('\', \'', $register_data) . '\'';
mysqli_query($conn, "INSERT INTO users ($fields) VALUES ($data)");
}
以及我在“register.php”页面上使用的代码:
require_once 'core/init.php';
$conn = new mysqli($host, $user, $pass, $_db);
if(empty($_POST) === false) {
$register_data = array(
'username' => $_POST['username'],
'password' => $_POST['password'],
'fname' => $_POST['fname'],
'lname' => $_POST['lname'],
'email' => $_POST['email']
);
register_user($register_data);
header('location: register.php?success');
exit();
}
最后,我的初始化文件“init.php”:
session_start();
//error_reporting(0);
require '_db/connect.php';
require '_users/general.php';
require '_users/users.php';
请注意,在我的“connect.php”文件中是数据库连接脚本:
$host = "127.0.0.1";
$user = "root";
$pass = "";
$_db = "test";
//connect script
$conn = new mysqli($host, $user, $pass, $_db);
感谢任何帮助!
谢谢!
最佳答案
$conn
对象未传递给您的 register_user()
函数,因此查询失败。
像这样传递:register_user($register_data, $conn);
并像这样接收它:function register_user($register_data, $conn){...}
关于PHP MySQLi 查询不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35097857/