我试图用准备好的语句学习PHP,之前我遇到了一些令人沮丧的错误,但我自己想出来(经过4个令人沮丧的时间)。现在我收到了这个错误: 致命错误:在第15行的....中的非对象上调用成员函数bind_param()。
<?php
$host="127.0.0.1";
$port=3306;
$socket="";
$user="root";
$password="";
$dbname="ewt";
$con = new mysqli($host, $user, $password, $dbname, $port, $socket)
or die ('Could not connect to the database server' . mysqli_connect_error());
$mysqli = $con;
$stmt = $mysqli->prepare("INSERT INTO PERSOON VALUES (?,?,?,?,?,?,?,?)");
$stmt->bind_param('ssssssid',$firstName,$lastName,$email,$pass,$address,$city,$zip,$telephone);
$firstName = $_POST['firstName'];
$lastName = $_POST['lastName'];
$email = $_POST['email'];
$pass = $_POST['pass'];
$address = $_POST['address'];
$city = $_POST['city'];
$zip = $_POST['zip'];
$telephone = $_POST['telephone'];
$stmt->execute();
$stmt->close();
$mysqli->close();
我完全不知道代码有什么问题。
答案 0 :(得分:2)
我会窥探两个可能出现的问题,一个无关紧要但又很重要的问题,一旦你解决了可能存在的问题就会立即咬你。
PERSOON
。 PERSON
,也许。在其中任何一种情况下,您的prepare()
来电都会返回false
,这显然不是对象。您可以使用var_dump($mysqli->error);
重要的问题:您在宣布它们之前尝试使用所有提取的$_POST
变量 ...