Heim > Artikel > Backend-Entwicklung > Wie verwende ich die Funktion mysqli_real_escape_string() in PHP?
In diesem Artikel erfahren Sie, wie Sie die Funktion mysqli_real_escape_string() in PHP verwenden. Es hat einen gewissen Referenzwert. Freunde in Not können sich darauf beziehen. Ich hoffe, es wird für alle hilfreich sein.
Die Funktion mysqli_real_escape_string() ist eine in PHP integrierte Funktion, die zum Escapen aller Sonderzeichen zur Verwendung in SQL-Abfragen verwendet wird. Verwenden Sie dies, bevor Sie die Zeichenfolge in die Datenbank einfügen, da dadurch alle Sonderzeichen entfernt werden, die den Abfragevorgang beeinträchtigen könnten.
Bei der Verwendung einfacher Zeichenfolgen können diese Sonderzeichen wie Backslashes und Apostrophe enthalten (insbesondere, wenn Daten direkt aus einem Formular abgerufen werden, in das solche Daten eingegeben wurden). Diese gelten als Teil der Abfragezeichenfolge und beeinträchtigen deren ordnungsgemäße Funktion.
<?php $connection = mysqli_connect( "localhost" , "root" , "" , "Persons" ); // Check connection if (mysqli_connect_errno()) { echo "Database connection failed." ; } $firstname = "Robert'O" ; $lastname = "O'Connell" ; $sql ="INSERT INTO Persons (FirstName, LastName) VALUES ( '$firstname' , '$lastname' )"; if (mysqli_query( $connection , $sql )) { // Print the number of rows inserted in // the table, if insertion is successful printf( "%d row inserted.n" , $mysqli ->affected_rows); } else { // Query fails because the apostrophe in // the string interferes with the query printf( "An error occurred!" ); } ?>
Im obigen Code schlägt die Abfrage fehl, da bei Verwendung von mysqli_query() zur Ausführung des Apostrophs das Apostroph als Teil der Abfrage betrachtet wird. Die Lösung besteht darin, mysqli_real_escape_string() zu verwenden, bevor der String in der Abfrage verwendet wird.
<?php $connection = mysqli_connect( "localhost" , "root" , "" , "Persons" ); // Check connection if (mysqli_connect_errno()) { echo "Database connection failed." ; } $firstname = "Robert'O" ; $lastname = "O'Connell" ; // Remove the special characters from the // string using mysqli_real_escape_string $lastname_escape = mysqli_real_escape_string( $connection , $lastname ); $firstname_escape = mysqli_real_escape_string( $connection , $firstname ); $sql ="INSERT INTO Persons (FirstName, LastName) VALUES ( '$firstname' , '$lastname' )"; if (mysqli_query( $connection , $sql )) { // Print the number of rows inserted in // the table, if insertion is successful printf( "%d row inserted.n" , $mysqli ->affected_rows); } ?>
Die Ausgabe ist wie folgt:
1 row inserted.
Das obige ist der detaillierte Inhalt vonWie verwende ich die Funktion mysqli_real_escape_string() in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!