我正在尝试插入记录,但是我的bind_param出现错误?我想念什么吗?
for($i = 0; $i < count($getbookauthorfname); $i++){
if($getbookauthorfname[$i] != "" && $getbookauthormname[$i] != "" && $getbookauthorlname[$i] != "" ){
$query = "INSERT INTO tbl_author (book_isbn, author_firstname, author_middlename, author_lastname) VALUES (? , ? , ? , ?)";
$stmt = $mysqlconnection->prepare($query);
$getbookauthorfname[$i] = htmlspecialchars(strip_tags($getbookauthorfname[$i]));
$getbookauthormname[$i] = htmlspecialchars(strip_tags($getbookauthormname[$i]));
$getbookauthorlname[$i] = htmlspecialchars(strip_tags($getbookauthorlname[$i]));
$stmt->bind_param("ssss", $getbookisbn, $getbookauthorfname[$i], $getbookauthormname[$i], $getbookauthorlname[$i]);
$stmt->execute();
}
}
最佳答案
如错误所示,bind_param
仅接受变量。您正在传递数组项,因此它将无法工作。
尝试以下方法:
//...
$fname = htmlspecialchars(strip_tags($getbookauthorfname[$i]));
$mname = htmlspecialchars(strip_tags($getbookauthormname[$i]));
$lname = htmlspecialchars(strip_tags($getbookauthorlname[$i]));
$stmt->bind_param("ssss", $getbookisbn, $fname, $mname, $lname);
//...
关于php - 只能通过引用bind_param(PHP)传递变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49158728/