我正在尝试插入记录,但是我的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/

10-10 22:05