【问题标题】:PHP MySQLi Query Not WorkingPHP MySQLi 查询不工作
【发布时间】: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);

感谢您的任何帮助!

谢谢!

【问题讨论】:

标签: php mysql mysqli


【解决方案1】:

$conn 对象未传递给您的 register_user() 函数,因此查询失败。

这样传递:register_user($register_data, $conn);

并像这样接收它:function register_user($register_data, $conn){...}

【讨论】:

  • 我要试试这个! :)
  • 非常感谢!像魅力一样工作!不敢相信我错过了这个,虽然:/
  • 没问题。它发生了。
猜你喜欢
  • 1970-01-01
  • 2012-10-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-05
  • 2019-02-07
  • 1970-01-01
相关资源
最近更新 更多