Rumah > pembangunan bahagian belakang > tutorial php > Mengapa mysqli_stmt::bind_param() Membuang 'Parameter ... dijangka menjadi rujukan, nilai diberikan'?

Mengapa mysqli_stmt::bind_param() Membuang 'Parameter ... dijangka menjadi rujukan, nilai diberikan'?

Susan Sarandon
Lepaskan: 2024-12-05 09:11:15
asal
668 orang telah melayarinya

Why Does mysqli_stmt::bind_param() Throw

mysqli bind_param() Ralat: Melepasi Nilai Daripada Rujukan

Ralat "Parameter 3 kepada mysqli_stmt::bind_param() dijangka akan rujukan, nilai yang diberikan" timbul apabila mysqli_stmt::bind_param() menghantar tatasusunan nilai dan bukannya tatasusunan rujukan kepada nilai tersebut.

Kod PDO

Dalam kod PDO yang disediakan:

$params = array(1,"2","3","4");
Salin selepas log masuk

Tatasusunan $params mengandungi nilai dan bukannya rujukan kepada nilai tersebut. Untuk membetulkannya, gunakan & untuk membuat rujukan:

$params = array(1,&"2", &"3", &"4");
Salin selepas log masuk

Kod OOP

Begitu juga, dalam kod OOP:

array_unshift($params, $param_type);
Salin selepas log masuk

Baris ini menambah rentetan $param_type ke permulaan tatasusunan $params, tetapi ia tidak membuat rujukan kepada nilai parameter. Untuk membuat rujukan, gunakan aksara &:

array_unshift($params, $param_type);
foreach ($params as $key => $value) {
    $params[$key] =& $value;
}
Salin selepas log masuk

Penyelesaian Alternatif Menggunakan Operator Spread (PHP 5.6 )

Dalam PHP versi 5.6 dan ke atas, anda boleh menggunakan operator spread (... ) untuk menghantar tatasusunan $params sebagai hujah individu tanpa perlu membuat rujukan secara manual:

mysqli_stmt_bind_param($sql_stmt, $param_type, ...$params);

$insert_stmt->bind_param($param_type, ...$params);
Salin selepas log masuk

Dengan lulus rujukan atau menggunakan operator spread, anda boleh memastikan bahawa mysqli_stmt::bind_param() menerima tatasusunan rujukan kepada nilai parameter, menyelesaikan ralat.

Atas ialah kandungan terperinci Mengapa mysqli_stmt::bind_param() Membuang 'Parameter ... dijangka menjadi rujukan, nilai diberikan'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan