This is a discussion on addslashes vs. mysql_real_escape_string within the PHP Language forums, part of the PHP Programming Forums category; When I look directly in my db field I see a difference between these two functions. The top line (seebelow) ...
|
|||||||
| FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
|
|||
|
When I look directly in my db field I see a difference between these two functions. The top line (seebelow) was inserted with addslashes vs. the bottom line where I used mysql_real_escape_string. Obviously addslashes really escapes the apostrophe. But I thought mysql_real_escape_string is supposed to do that too - can anyone explain? Thanks, Lee G. This is Aviva\'s website. This is Sarah's website. |
|
|||
|
leegold2 wrote:
> When I look directly in my db field I see a difference between these two > functions. The top line (seebelow) was inserted with addslashes vs. the > bottom line where I used mysql_real_escape_string. Obviously addslashes > really escapes the apostrophe. But I thought mysql_real_escape_string is > supposed to do that too - can anyone explain? Thanks, Lee G. > > This is Aviva\'s website. > This is Sarah's website. What were: * the original strings before escaping * the strings after escaping, as they appeared in the SQL you sent to the server? I don't see any difference on a test string with an apostrophe on these functions in 4.3.8 or 5.0.2: <?php $originalstring = "Apostrophe's rock"; echo $originalstring, "\n"; echo addslashes( $originalstring ), "\n"; echo mysql_escape_string( $originalstring ), "\n"; echo mysql_real_escape_string( $originalstring ), "\n"; ?> output: Apostrophe's rock Apostrophe\'s rock Apostrophe\'s rock Apostrophe\'s rock Can you confirm that the pre-escaping string for "This is Aviva\'s website." did not contain a backslash, and that the same query was used to insert both samples? Did the data from from a literal string, a file, or from a web form? If you're using the magic_quotes_gpc option (unfortunately the default is on, I believe), you need to run stripslashes() on any text that comes from GET/POST/COOKIE variables before further processing. -- brion vibber (brion @ pobox.com) |