View Full Version : How to insert things into a MySQL database with an ' in?

01-24-2007, 10:21 AM
When I run this code:

$sql55="INSERT INTO users (username, password, ebay_username, ebay_status, ebay_email, paypal_status, paypal_email, num_purchases, first_name, last_name, address_street, address_city, address_state, address_zip, address_country, address_status, created) VALUES('".$row->account_username."', '".$row->account_password."', '".$row->auction_buyer_id."', '$ebay_status', '".$row->account_email."', '".$row->payer_status."', '".$row->account_email."', 1, '".$row->first_name."', '".$row->last_name."', '".$row->address_street."', '".$row->address_city."', '".$row->address_state."', '".$row->address_zip."', '".$row->address_country."', '".$row->address_status."', '$new_script_received')";
$result55 = mysql_query($sql55) or die( mysql_error() );

I get the error "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'S ROAD',"

Now it seams like the problem is this field "51 ST SIMONS'S ROAD" and I think the problem is the ', correct me if I'm wrong. How can I solve this problem? (It is a lot of rows I'm running this querey on so I can't just insert it manually).

Thanks in advance,
Best Regards
Oskar R

01-24-2007, 11:05 AM
use addslashes($row->address_street) to make it 51 ST SIMONS\'S ROAD and then when you call it from the database use stripslashes($row->address_street) to get it back to 51 ST SIMONS'S ROAD. For more information visit http://uk2.php.net/manual/en/function.addslashes.php


01-24-2007, 02:01 PM
use mysql_real_escape_string, see http://php.net/mysql-real-escape-string