Dieser Artikel stellt hauptsächlich die Verwendung der Funktion bind_param() in PHP vor und analysiert kurz die Funktionen, Parameter, Verwendungsmethoden und zugehörigen Vorsichtsmaßnahmen der Funktion bind_param()
Wörtlich Es ist nicht schwer, die Bindungsparameter zu verstehen; lassen Sie mich anhand eines Beispiels für Bindungsparameter darüber sprechen:
zum Beispiel:
bind_param("sss", firstname,lastname, $email);
1. Diese Funktion bindet SQL-Parameter und teilt der Datenbank den Wert der Parameter mit. Die Parameterspalte „sss“ verwaltet die Datentypen der übrigen Parameter. Das s-Zeichen teilt der Datenbank mit, dass es sich bei dem Parameter um eine Zeichenfolge handelt.
Die Parameter haben die folgenden vier Typen:
i – Integer (Ganzzahltyp)
d – double (Gleitkommatyp mit doppelter Genauigkeit)
s – string (string)
b – BLOB (boolean)
Jeder Parameter muss den Typ angeben.
Indem Sie der Datenbank den Datentyp des Parameters mitteilen, können Sie das Risiko einer SQL-Injection verringern.
2. Der obige Vorname, Nachname und die E-Mail-Adresse werden durch Referenzen übergeben, die nach PHP5.3 nicht direkt als Zeichenfolgen geschrieben werden können. Um diese Schlussfolgerung zu überprüfen, habe ich hier einen Test wie folgt geschrieben:
$servername="localhost"; $username="root"; $password="admin"; $dbname="test"; $conn=new mysqli($servername,$username,$password,$dbname); if($conn->connect_error){ die("connected failed:".$conn->connect_error); } $sql="INSERT INTO user(user_first,user_last,age)VALUES(?,?,?)"; $stmt=$conn->prepare($sql); $stmt->bind_param("sss","xiao","hong",22); $stmt->execute(); echo "News records created successfully!"; $stmt->close(); $conn->close();
Oben habe ich ein Testprogramm geschrieben, das Parameter direkt in Strings schreibt. Nach dem Ausführen erscheint:
Schließlich habe ich das Programm wie folgt umgeschrieben:
$servername="localhost"; $username="root"; $password="password"; $dbname="test"; $conn=new mysqli($servername,$username,$password,$dbname); if($conn->connect_error){ die("Connect failed:".$conn->connect_error); } $sql="INSERT INTO user(user_first,user_last,age)VALUES(?,?,?)"; $stmt=$conn->prepare($sql); $stmt->bind_param("sss",$user_first,$user_last,$age); $user_first="xiao"; $user_last="hong"; $age=12; $stmt->execute(); echo "News records created successfully!"; $stmt->close(); $conn->close();
Und das obige Programm kann normal ausgeführt werden
Das Obige ist Ich hoffe, dass der gesamte Inhalt dieses Artikels für das Studium aller hilfreich sein wird.
Verwandte Empfehlungen:
bind_param() Funktionsnutzungsanalyse in PHP
Detaillierte Erklärung der Verwendung von bindParam und bindValue in Yii2
Detaillierte Erklärung des Unterschieds zwischen bindParam und bindValue
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Verwendung der Funktion bind_param() in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!