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(); }
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'];
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>'; }
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!