Rumah >pembangunan bahagian belakang >tutorial php >Mengapakah `mysqli_stmt::bind_param()` Memerlukan Rujukan, dan Bagaimana Saya Boleh Membetulkan Ralat 'Parameter Dijangka Menjadi Rujukan'?

Mengapakah `mysqli_stmt::bind_param()` Memerlukan Rujukan, dan Bagaimana Saya Boleh Membetulkan Ralat 'Parameter Dijangka Menjadi Rujukan'?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-06 08:56:11261semak imbas

Why Does `mysqli_stmt::bind_param()` Require References, and How Can I Fix the

Menyelesaikan masalah "mysqli bind_param() Parameter Dijangka Menjadi Rujukan" Ralat

Ralat "Parameter 3 to mysqli_stmt()bind_param() dijangka menjadi rujukan, nilai yang diberikan" menunjukkan percanggahan antara jenis input yang dijangkakan dan nilai yang diberikan dalam kaedah mysqli_bind_param().

Dalam kod yang diberikan, anda menggunakan call_user_func_array() untuk menghantar tatasusunan nilai kepada mysqli_stmt_bind_param(). Walau bagaimanapun, mysqli_bind_param() menjangkakan parameter akan diluluskan melalui rujukan, manakala call_user_func_array() menerima sama ada rujukan atau nilai.

Untuk membetulkan isu ini, anda boleh menggunakan penyelesaian berikut yang disediakan dalam dokumentasi PHP:

$refs = array();
foreach ($params as $key => $value)
    $refs[$key] = &$params[$key];
call_user_func_array(array($statement, 'bind_param'), $refs);

Kod ini mencipta tatasusunan rujukan ($refs) kepada elemen dalam $params tatasusunan dan hantar tatasusunan $refs ke mysqli_stmt_bind_param(), memastikan bahawa parameter diluluskan melalui rujukan.

Sebagai alternatif, anda boleh menggunakan operator spread (tersedia dalam versi PHP yang lebih baharu) untuk menghantar terus elemen $ tatasusunan params sebagai rujukan:

call_user_func_array(array($statement, 'bind_param'), ...$params);

Atas ialah kandungan terperinci Mengapakah `mysqli_stmt::bind_param()` Memerlukan Rujukan, dan Bagaimana Saya Boleh Membetulkan Ralat 'Parameter Dijangka Menjadi Rujukan'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn