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

Wie kann ich Parameter dynamisch an MySQL-Abfragen in PHP binden?

Linda Hamilton
Freigeben: 2024-12-03 01:00:14
Original
931 Leute haben es durchsucht

How Can I Dynamically Bind Parameters to MySQL Queries in PHP?

MySQL-Parameter dynamisch in PHP binden

In Ihrer Anwendung stoßen Sie auf Szenarien, in denen Sie Parameter dynamisch an vorbereitete SQL-Abfragen binden müssen. Während Ihr aktueller Ansatz funktioniert, mangelt es ihm an Vielseitigkeit, insbesondere wenn es um den Umgang mit einer unterschiedlichen Anzahl von Parametern geht.

Um die gewünschte Flexibilität zu erreichen, können Sie die folgende Technik nutzen, indem Sie call_user_func_array() und den Entpackungsoperator (...$) verwenden var):

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

Mit dieser aktualisierten get_custom_result()-Methode können Sie die Parametertypen und -werte dynamisch über $types und $params angeben Argumente bzw. Die ...$params-Syntax entpackt das Array und übergibt jeden Wert einzeln an die bind_param()-Methode.

Berücksichtigen Sie beispielsweise die folgenden Abfrage- und Parameterwerte:

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

$params = ['1', 'Tk'];
Nach dem Login kopieren

Das ist möglich Führen Sie nun die Abfrage mit dynamischer Parameterbindung aus:

$res = $output->get_custom_result($sql, 'ss', $params);

while ($row = $res->fetch_assoc()) {
    echo $row['fieldName'] .'<br>';
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kann ich Parameter dynamisch an MySQL-Abfragen in PHP 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