我正在尝试插入记录,但我的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();
}
}
答案 0 :(得分:0)
正如错误所述,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);
//...
答案 1 :(得分:0)
我设法回答我自己的问题,我忘了将数组存储放到我的文本框中,这就是为什么我得到错误。
<input type="text" class="form-control text-center" placeholder="First Name" id="author_fname[]" name="author_fname[]" required >