Jump to content

Question about Mysql_real_escape_string being self escaped after being inserted.


Recommended Posts

So I was under the assumption that when using mysql_real_escape_string() to escape user input data, that while its the database, thing like  say  It's  would be stored in the mysql DB as  it\'s.

 

It kind of threw me whether it was working or not.  IN the database the input was not escaped, but doing an echo.

 

$var = "'''''''''''''";
$var = mysql_real_escape_string($var);
echo $var;

 

 

Would print

 

'\'\'\'\'\'\'\'\'\'\'\'

 

But in the database it would be

'''''''''''''''''''''''''''''''''

 

 

So the question is. Is that how mysql_real_escape_string works? So the data in the database won't be escaped? It unescapes in the database? While that saves some trouble when retrieving the data.

The \ characters are not present in the database. The \ characters are only present in the query string so that any special sql characters don't break the sql syntax of the query.

It is the exact same scenario as this

 

$var = "This variable has some "quotes" in it... "; // This will throw an error
$var = "This variable has some \"quotes\" in it... "; // But this won't

 

Get it?

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.