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

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

Susan Sarandon
リリース: 2024-12-06 00:46:11
オリジナル
916 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート