I am submitting a form to my MySQL database using PHP.
I am sending the form data through the mysql_real_escape_string($content)
function.
When the entry shows up in my database (checking in phpMyAdmin) all of my double quotes and single quotes are escaped.
I'm fairly certain this is a PHP configuration issue?
so:
$content = 'Hi, my name is Jascha and my "favorite" thing to do is sleep';
mysql_real_escape_string($content);
$query = 'INSERT INTO DB...'
comes up in my database as:
Hi, my name is Jascha and my \"favorite" thing to do is sleep
Who do I tell what to do? (I cannot access the php.ini).
I know it is a little late, but as a noob to php I needed something really simple. So I am using this code below to fix the problem described by the OP with magic_quotes_gpc I have a server running php 5.2.8 and one running 5.3
My web app is using datatables.net to display information. I started getting JSON errors when data was saved with special characters escaped in the database.
My Development machine uses 5.3 where this wasn't neccesary, but with php 5.2.8 I needed to use the stripslashes function in order to save the values to my database.
I realize this is basically the same answer as above, but for me it seemed more my style. Hopefully this will help others in the same boat as I am.....
If you are getting your $content data from a form (and not "as-is" in the PHP code), maybe you're having a problem because of Magic quotes (see
magic_quotes_gpc
)Basically :
If magic quotes are enabled (you can check this in the ouput of
phpinfo()
, for instance), you'll be getting that kind of "double escaping" :mysql_real_escape_string
The good solution, in this case, is not to stop using
mysql_real_escape_string
, but to disabled magic_quotes_gpc in your configuration...... But, as you don't have access to it, you'll actually have to "revert" the effect of magic quotes, calling
stripslashes
on the input you're getting as$_GET
and$_POST
, before begining using it.Note : it's an advice that's given on the manual page of
mysql_real_escape_string
(quoting) :You need to take magic quotes into account when retrieving request data. If
get_magic_quotes_gpc()
istrue
, then you need to runstripslashes()
on the input. Best way would be to write a function for that. Something like:..which you can use as
..instead of
Do the same for trivial stuff like
get_number()
,get_boolean()
,get_array()
and so on.