【发布时间】:2016-01-30 04:07:35
【问题描述】:
每当用户注册时,我都会尝试将数据插入数据库中的用户表中,但是,我在这样做时遇到了麻烦..
我尝试在我的 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);
感谢您的任何帮助!
谢谢!
【问题讨论】:
-
您是否遇到任何错误?
-
@CodeGodie none,我已经通过注释掉
error_reporting(0)来确保它也输出所有错误@ -
您有一个变量范围问题 - php.net/manual/en/language.variables.scope.php。当您在
register_user()中调用$conn时,它不在范围内。 -
no it's not是什么意思? 您的 selected answer 告诉您您有变量范围问题 - stackoverflow.com/a/35097946/689579。