I'm using mysqli_real_escape_string() on an email address, and it returns an empty string. It does this with any email address.
<?php
//from previous page - submitted by user.
$_POST['email']="[email protected]";
$_POST['password']='mypass1234';
//Link, I can verify it works.
$mysql_info=array(
"url"=>"url",
"username"=>"username",
"password"=>"password",
"database"=>"database"
);
$link=mysqli_connect($mysql_info['url'],$mysql_info['username'],$mysql_info['password'],$mysql_info['database']);
//Now I attempt to sanitize the user input.
$email=mysqli_real_escape_string($link,$_POST['email']);
$password=sha1(mysqli_real_escape_string($link,$_POST['password']));
var_dump($email);
var_dump($password);?>
My table's collation is "latin1_swedish_ci".
The mysqli_real_escape_string() function is an inbuilt function in PHP which is used to escape all special characters for use in an SQL query. It is used before inserting a string in a database, as it removes any special characters that may interfere with the query operations.
You should use real_escape_string on any parameter you're mixing as a string literal into the sql statement. And only on those string literal values.
mysql_real_escape_string() and prepared statements need a connection to the database so that they can escape the string using the appropriate character set - otherwise SQL injection attacks are still possible using multi-byte characters.
This extension was deprecated in PHP 5.5. 0, and it was removed in PHP 7.0.
If your connection is empty ($link
), it will return an empty string. I tested this and it worked fine. I would recommend that you add error handling to your connection and enable error reporting.
<?php
$link = mysqli_connect("localhost", "root", "root", "test");
/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
$_POST['email'] = "[email protected]";
$email = mysqli_real_escape_string($link, $_POST['email']);
var_dump($email);
mysqli_close($link);
?>
Result
string(17) "[email protected]"
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With