Heim >Backend-Entwicklung >PHP-Tutorial >Wie erreicht man eine dynamische Parameterbindung 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!