Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Menyelesaikan Ralat 'Dijangka menjadi Rujukan' dalam mysqli bind_param()?
Mengendalikan Ralat "Dijangka Menjadi Rujukan" dalam mysqli bind_param()
Mesej ralat "Parameter 3 kepada mysqli_stmt::bind_param( ) dijangka menjadi rujukan, nilai yang diberikan" timbul apabila mengikat nilai kepada yang disediakan kenyataan. Untuk menyelesaikan isu ini, nilai yang diberikan mestilah merujuk kepada pembolehubah sebenar dan bukannya nilai itu sendiri.
Dalam coretan kod yang disediakan, tatasusunan $params mengandungi nilai yang bukan rujukan. Untuk mengikat nilai dengan betul, anda boleh menggunakan pendekatan berikut:
$query = "INSERT INTO test (id,row1,row2,row3) VALUES (?,?,?,?)"; $param_type = "isss"; // PHP 7+ $sql_stmt = mysqli_prepare($mysqli, $query); mysqli_stmt_bind_param($sql_stmt, $param_type, ...$params); // PHP 5.6 - 7.0 $sql_stmt = mysqli_prepare($mysqli, $query); $arr = array($sql_stmt, $param_type); foreach ($params as $param) { $arr[] = &$param; } call_user_func_array('mysqli_stmt_bind_param', $arr); mysqli_stmt_execute($sql_stmt);
Penggunaan Rujukan
Dalam PHP 5.3 dan ke bawah, rujukan tidak diperlukan untuk nilai mengikat kepada pernyataan yang disediakan. Walau bagaimanapun, bermula dari PHP 5.4, rujukan adalah wajib. Sebab perubahan ini adalah untuk mengelakkan penyalinan pembolehubah yang tidak diingini dan kemungkinan kebocoran memori.
Dengan menggunakan rujukan, proses pengikatan menjadi lebih cekap kerana nilai terikat diubah suai secara langsung, menghapuskan keperluan untuk tugasan pembolehubah tambahan.
Kesimpulan
Ingat bahawa apabila menggunakan mysqli bind_param() dengan nilai yang bukan rujukan, anda perlu menghantarnya sebagai rujukan atau menggunakan pendekatan alternatif untuk mengikat nilai dengan betul. Ini memastikan pelaksanaan pertanyaan SQL anda yang cekap dan bebas ralat.
Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ralat 'Dijangka menjadi Rujukan' dalam mysqli bind_param()?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!