【发布时间】:2018-03-07 18:16:41
【问题描述】:
我正在尝试插入记录,但我的 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();
}
}
【问题讨论】:
-
$getbookauthorfname[$i]不是变量。 -
在我的 isset 中声明了 $getbookauthorfname = $_POST["author_fname"]; $getbookauthormname = $_POST["author_mname"]; $getbookauthorlname = $_POST["author_lname"];
-
我可以给你看整个 php 代码,但是太长了
-
htmlspecialchars(strip_tags为什么?您正在使用准备好的语句。 -
认为
prepare()应该在循环之外完成 - 准备一次并执行多次。
标签: php mysql mysqli prepared-statement