Rumah > pembangunan bahagian belakang > tutorial php > Bagaimanakah Saya Boleh Mengikat Parameter Secara Dinamik ke Pertanyaan MySQL dalam PHP?

Bagaimanakah Saya Boleh Mengikat Parameter Secara Dinamik ke Pertanyaan MySQL dalam PHP?

Linda Hamilton
Lepaskan: 2024-12-03 01:00:14
asal
926 orang telah melayarinya

How Can I Dynamically Bind Parameters to MySQL Queries in PHP?

Mengikat Parameter MySQL Secara Dinamik dalam PHP

Dalam aplikasi anda, anda menghadapi senario di mana anda perlu mengikat parameter secara dinamik kepada pertanyaan SQL yang disediakan. Walaupun pendekatan semasa anda berfungsi, ia tidak mempunyai kepelbagaian, terutamanya apabila berurusan dengan bilangan parameter yang berbeza-beza.

Untuk mencapai fleksibiliti yang diingini, anda boleh memanfaatkan teknik berikut menggunakan call_user_func_array() dan operator membongkar (...$ var):

public function get_custom_result($sql, $types = null, $params = null) {
    $stmt = $this->mysqli->prepare($sql);
    $stmt->bind_param($types, ...$params);

    if (!$stmt->execute()) return false;
    return $stmt->get_result();
}
Salin selepas log masuk

Kaedah get_custom_result() yang dikemas kini ini membolehkan anda menentukan jenis dan nilai parameter secara dinamik melalui argumen $types dan $params, masing-masing. Sintaks ...$params membongkar tatasusunan, menghantar setiap nilai secara individu kepada kaedah bind_param().

Sebagai contoh, pertimbangkan pertanyaan dan nilai parameter berikut:

$sql = "
SELECT *
FROM root_contacts_cfm
WHERE root_contacts_cfm.cnt_id = ?
AND root_contacts_cfm.cnt_firstname = ?
ORDER BY cnt_id DESC";

$params = ['1', 'Tk'];
Salin selepas log masuk

Anda boleh sekarang laksanakan pertanyaan dengan pengikatan parameter dinamik:

$res = $output->get_custom_result($sql, 'ss', $params);

while ($row = $res->fetch_assoc()) {
    echo $row['fieldName'] .'<br>';
}
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengikat Parameter Secara Dinamik ke Pertanyaan MySQL dalam PHP?. 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