首頁 >後端開發 >php教程 >PHP如何動態綁定MySQL參數?

PHP如何動態綁定MySQL參數?

Patricia Arquette
Patricia Arquette原創
2024-12-01 19:11:14871瀏覽

How Can I Dynamically Bind MySQL Parameters in PHP?

在PHP 中動態綁定MySQL 綁定參數

如您所發現的,PHP 的MySQLi 擴充中的bind_param 方法在動態處理多個參數或無參數查詢方面可能受到限制。以下是解決此問題的策略:

使用call_user_func_array

以下程式碼片段可讓您動態建立和綁定參數陣列:

if (strnatcmp(phpversion(), '5.3') >= 0) {
    $refs = array();
    foreach ($arr as $key => $value)
        $array_of_params[$key] = &$arr[$key];
    call_user_func_array(array(&$stmt, 'bind_params'), $array_of_params);
}

使用PHP 5.6語法

在PHP 5.6 及更高版本中,您可以利用解包運算子和get_result()

方法:
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();
}

方法:

$mysqli = new database(DB_HOST, DB_USER, DB_PASS, DB_NAME);
$output = new search($mysqli);

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

$res = $output->get_custom_result($sql, 'ss', array('1', 'Tk'));
while ($row = res->fetch_assoc()) {
    echo $row['fieldName'] . '<br>';
}

>範例: 這些解決方案提供了更大的靈活性和MySQL 查詢的動態綁定功能。

以上是PHP如何動態綁定MySQL參數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn