3

我正在或试图为大学做一个数据库项目,但是在注册用户时出现此错误:

致命错误:在 (...) 中的非对象上调用成员函数 bind_param()

最初我写

$insert = $db->prepare("INSERT INTO customer (name, email, phonenumber, adress, password) VALUES (?, ?, ?, ?, ?");

但是后来我改好了,你可以在代码中看到。

<?php
require 'db/connect.php';
require 'functions/security.php';

if(!empty($_POST)) {

    if(isset($_POST['name'], $_POST['email'], $_POST['address'], $_POST['phone'], $_POST['password'])) {

        $name = trim($_POST['name']);
        $email `enter code here` = trim($_POST['email']);
        $phone = trim($_POST['phone']);
        $address = trim($_POST['address']);
        $password  = trim($_POST['password']);

        if(!empty($name) && !empty($email) &&!empty($phone) && !empty($address) &&!empty($password)){
                $insert = $db->prepare("INSERT INTO customer VALUES (?, ?, ?, ?, ?");
                $insert->bind_param('ssiss', $name, $email, $phone, $address, $password);
                //$insert->close();

            if($insert->execute()){
                print_r("Done");
                die();
            }            
        }        
    }
}
?>
4

1 回答 1

2

调用查询中的成员函数意味着查询无法执行,因为它包含错误。

在这种情况下,您没有关闭 VALUES ()。更改$insert = $db->prepare("INSERT INTO customer VALUES (?, ?, ?, ?, ?");$insert = $db->prepare("INSERT INTO customer VALUES (?, ?, ?, ?, ?)");

确保检查是否可以执行错误。检查是否可以执行查询的示例:

$query = $this->_db->prepare("SELECTTEST name FROM user"); //.. Bad query (false)
if(!$query) //.. If the query is false.
{
     trigger_error('Query couldn\'t get executed');
}

如果这解决了您的错误,我将非常感谢您投票我的答案作为答案。

于 2015-02-07T11:53:26.680 回答