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