Heim > Backend-Entwicklung > PHP-Problem > Wie verwende ich die Funktion mysqli_real_escape_string() in PHP?

Wie verwende ich die Funktion mysqli_real_escape_string() in PHP?

醉折花枝作酒筹
Freigeben: 2023-03-10 11:18:01
nach vorne
4062 Leute haben es durchsucht

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.

Wie verwende ich die Funktion mysqli_real_escape_string() in PHP?

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&#39;O" ;
$lastname = "O&#39;Connell" ;
   
$sql ="INSERT INTO Persons (FirstName, LastName) 
             VALUES ( &#39;$firstname&#39; , &#39;$lastname&#39; )";
   
   
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!" );
}
   
?>
Nach dem Login kopieren

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&#39;O" ;
$lastname = "O&#39;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 ( &#39;$firstname&#39; , &#39;$lastname&#39; )";
  
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);
}
   
?>
Nach dem Login kopieren

Die Ausgabe ist wie folgt:

1 row inserted.
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:segmentfault.com
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage