Heim > Backend-Entwicklung > PHP-Tutorial > Wie kann ich MySQL-Parameter in PHP dynamisch binden?

Wie kann ich MySQL-Parameter in PHP dynamisch binden?

Patricia Arquette
Freigeben: 2024-12-01 19:11:14
Original
916 Leute haben es durchsucht

How Can I Dynamically Bind MySQL Parameters in PHP?

Dynamisches Binden von MySQL-Bindungsparametern in PHP

Wie Sie herausgefunden haben, ist die Methode bind_param in der MySQLi-Erweiterung von PHP enthalten kann hinsichtlich der dynamischen Verarbeitung mehrerer Parameter oder parameterloser Abfragen eingeschränkt sein. Nachfolgend finden Sie Strategien zur Behebung dieses Problems:

Verwendung von call_user_func_array

Mit dem folgenden Codeausschnitt können Sie ein Array von Parametern dynamisch erstellen und binden:

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);
}
Nach dem Login kopieren

Mit PHP 5.6 Syntax

In PHP 5.6 und höher können Sie den Entpackoperator und die Methode get_result() nutzen:

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();
}
Nach dem Login kopieren

Beispiel:

$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>';
}
Nach dem Login kopieren

Diese Lösungen bieten mehr Flexibilität und dynamische Bindungsmöglichkeiten für Ihr MySQL Abfragen.

Das obige ist der detaillierte Inhalt vonWie kann ich MySQL-Parameter in PHP dynamisch binden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage