ホームページ >バックエンド開発 >PHPチュートリアル >PHP MySQLi で動的パラメータ バインディングを実現するにはどうすればよいですか?

PHP MySQLi で動的パラメータ バインディングを実現するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-06 00:46:11917ブラウズ

How to Achieve Dynamic Parameter Binding in PHP MySQLi?

PHP MySQLi の動的バインディング

動的パラメーター バインディング

PHP MySQLi では、bind_param () メソッドを使用すると、パラメータを準備された声明。ただし、パラメータの量と型が異なる動的バインディングの場合、デフォルトの方法では不十分です。

解決策

この制限を克服するには、次の解決策を使用できます。採用:

Unpacking Operator とget_result()

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

この例は、パラメータを動的にバインドし、 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>';
}

このアプローチは、関数呼び出しに渡されたパラメーターに基づいてパラメーターをバインドする動的方法を提供します。

以上がPHP MySQLi で動的パラメータ バインディングを実現するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。