Bí quyết là tạo một mảng có chứa các tham số mà bạn muốn liên kết, sau đó với sự trợ giúp của call_user_func_array
, bạn có thể chuyển mảng này tới bind_param
.
Xem http://www.php.net/ manual / en / function.call-user-func-array.php
để biết chi tiết về call_user_func_array
.
Mã của bạn có thể giống như sau:
$para_type="";
/* $para is the array that later passed into bind_param */
$para=array($para_type);
$query = 'UPDATE tickets SET ';
IF(count($data) != 0) {
/* Looping all values */
foreach($data as $k=>$d) {
$query .= '`'.$d['field'].'` = ? ,';
$para_type .=$d['type'];
$para[] = &$data[$k]['value'];
}
/* removing last comma */
$query[(strlen($query)-2)] = '';
/* adding where */
$query .= ' WHERE `ticket_id` = ?';
$para_type .= 'i';
$para[]=&$ticket_id;
call_user_func_array(array($stmt, 'bind_param'), $para);
return true;
}
Lưu ý &
trước tất cả các tham số, nó được yêu cầu bởi bind_param
.
Một cách khác mà tôi nghĩ là tốt hơn là sử dụng PDO. Nó nhận tham số được đặt tên và có thể thực hiện liên kết gia tăng.