Heim >Backend-Entwicklung >PHP-Tutorial >Wie erreicht man eine dynamische Parameterbindung in PHP MySQLi?

Wie erreicht man eine dynamische Parameterbindung in PHP MySQLi?

Susan Sarandon
Susan SarandonOriginal
2024-12-06 00:46:11917Durchsuche

How to Achieve Dynamic Parameter Binding in PHP MySQLi?

Dynamische Bindung für PHP MySQLi

Dynamische Parameterbindung

In PHP MySQLi der bind_param ()-Methode ermöglicht die Bindung von Parametern an eine vorbereitete Anweisung. Für die dynamische Bindung, bei der Parameter in Menge und Typ variieren können, reicht die Standardmethode jedoch nicht aus.

Lösung

Um diese Einschränkung zu überwinden, kann die folgende Lösung sein beschäftigt:

Verwendung des Unpacking-Operators und get_result()

Mit PHP 5.6 und höher können der Entpackoperator (...) und get_result() verwendet werden, um die dynamische Bindung zu vereinfachen:

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

Beispiel

Dieses Beispiel veranschaulicht, wie um Parameter dynamisch zu binden und das Ergebnis abzurufen:

$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>';
}

Dieser Ansatz bietet eine dynamische Möglichkeit, Parameter basierend auf den an die Funktion übergebenen Parametern zu binden anrufen.

Das obige ist der detaillierte Inhalt vonWie erreicht man eine dynamische Parameterbindung in PHP MySQLi?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn