Home DataBase mysqli_real_escape_string() Function

mysqli_real_escape_string() Function

156
0

La funzione mysqli_real_escape_string() è una funzione incorporata in PHP che viene utilizzata per eseguire l’escape dei caratteri speciali da utilizzare in una query SQL. Viene utilizzato prima di inserire una stringa in un database, in quanto rimuove eventuali caratteri speciali che potrebbero interferire con le operazioni dinameiche tra script e db. 
Quando vengono utilizzate stringhe semplici, è possibile che siano inclusi caratteri speciali come barre rovesciate e apostrofi (specialmente quando si ottengono dati direttamente da un modulo in cui vengono immessi tali dati). Questi sono considerati parte della stringa di query e interferiscono con il suo normale funzionamento. 

<?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!");
}

?>

Nel codice precedente, la query fallisce perché gli apostrofi sono considerati parte della query quando viene eseguita utilizzando mysqli_query(). La soluzione è utilizzare mysqli_real_escape_string() prima di utilizzare le stringhe nella query.

<?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_escape', '$lastname_escape')";

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);
}

?>

Vuoi essere uno sviluppatore di software o un professionista che desidera migliorare le tue capacità di sviluppo di software ? Quindi, padroneggia i concetti di sviluppo full-stack. Il nostro corso Full Stack Development – React e Node.js ti aiuterà a raggiungere questo obiettivo rapidamente. Impara tutto, dallo sviluppo front-end allo sviluppo back-end con progetti pratici ed esempi reali. Questo corso ti consente di creare applicazioni Web scalabili, efficienti e dinamiche che si distinguono. Pronto a diventare un esperto di Full-Stack? Iscriviti ora e inizia a creare il futuro!

Previous articleCos’è MySQLi
Next articleInput Text Animation

LEAVE A REPLY

Please enter your comment!
Please enter your name here