Heim  >  Artikel  >  Backend-Entwicklung  >  Nutzungsanalyse der Funktion bind_param() in PHP

Nutzungsanalyse der Funktion bind_param() in PHP

不言
不言Original
2018-04-28 15:19:493731Durchsuche

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(). Freunde in Not können sich auf die Beispiele dieses Artikels beziehen

Beschreibt die Verwendung der Funktion bind_param() in PHP. Ich teile es Ihnen als Referenz mit:

Es ist nicht schwer, die Bindungsparameter wörtlich 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 der detaillierte Inhalt vonNutzungsanalyse der Funktion bind_param() in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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