这个问题在这里已有答案:
Code
if(isset($_POST['create'])){
$fname = trim($_POST['fname']);
$lname = trim($_POST['lname']);
$ftname = trim($_POST['ftname']);
$mtname = trim($_POST['mtname']);
$date_of_admission = trim($_POST['date_of_admission']);
$date_of_birth = trim($_POST['date_of_birth']);
$photo_location = trim($_POST['photo_location']);
$address = trim($_POST['address']);
$phone = trim($_POST['phone']);
$sex = trim($_POST['sex']);
$nationality = trim($_POST['nationality']);
$religion = trim($_POST['religion']);
if(empty($fname) && empty($lname) &&empty($ftname) &&empty($mtname) &&empty($date_of_admission) && empty($phone) && empty($sex)){
$error = "You must fill all fields.";
}else{
$insert = $db->prepare("INSERT INTO st_info (fname, lname, ftname, mtname, date_of_birth, date_of_admission, photo_location, address, phone, sex, nationality, religion,joined) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, NOW())");
$insert->bind_param('sssssssssddd',$fname,$lname,$ftname,$mtname,$date_of_birth,$date_of_admission,$photo_location,$address,$phone,$sex,$nationality,$religion);
if($insert->execute()){
//$success = "st_info added successfully!";
header("location:index.php");
}
}
}
Error
致命错误:在第26行的C:\ xampp \ htdocs \ create.php中调用boolean上的成员函数bind_param()
3 回答
看起来像$ db-> prepare()返回一个布尔值而不是一个对象 . 试试吧?
看来你的prepare语句失败了(否则它会返回一个PDOStatement而不是一个布尔值)
您应该使用
$db->errorInfo()
和$db->errorCode()
来获取错误的原因 .原因可能是,您的语句中有一些字段,这些字段不存在,或者您将它们命名为错误 .
准备好的语句中最常见的失败之一是连接编码..试试
后