MySQL doesn't care about quotes when doing INSERT INTO ... SELECT. It's
got to be something you're doing in PHP. Are you using that exact query?
mysql create table list (clientid int, fname varchar(20));
Query OK, 0 rows affected (0.07 sec)
mysql create table list2 (fname varchar(20));
Query OK, 0 rows affected (0.02 sec)
mysql insert into list values (1,'John'),(2,'O\'Hare'),(3,'Smith');
Query OK, 3 rows affected (0.02 sec)
Records: 3 Duplicates: 0 Warnings: 0
mysql select * from list;
+--++
| clientid | fname |
+--++
|1 | John |
|2 | O'Hare |
|3 | Smith |
+--++
3 rows in set (0.03 sec)
mysql insert into list2 (fname) select fname from list where clientid =
2;
Query OK, 1 row affected (0.00 sec)
Records: 1 Duplicates: 0 Warnings: 0
mysql select * from list2;
++
| fname |
++
| O'Hare |
++
1 row in set (0.00 sec)
Even if you're using double addslashes(), it'll work...
mysql insert into list values (4,'O\\\'Henry');
Query OK, 1 row affected (0.00 sec)
mysql insert into list2 (fname) select fname from list where clientid =
4;
Query OK, 1 row affected (0.00 sec)
Records: 1 Duplicates: 0 Warnings: 0
mysql select * from list2;
+--+
| fname|
+--+
| O'Hare |
| O\'Henry |
+--+
2 rows in set (0.00 sec)
---John Holmes...
-Original Message-
From: David McInnis [mailto:[EMAIL PROTECTED]]
Sent: Friday, June 21, 2002 1:57 AM
To: [EMAIL PROTECTED]
Subject: [PHP] Mysql Insert from select problem with php
After posting this on the MySQL list and getting some feedback we were
able to determine that this was not a flaw with MySQL. Any ideas from
the PHP community?
===
Can anyone tell me why this does not work? I am using php and mysql.
When I do an insert from select into a mysql table I get an error
whenever a value from the select portion of the query contains an
apostrophe. Before I insert the initial value I use the php
addslashes() function to escape the ' and characters.
For example:
If clients table contans a field called fname and it has a value of
O'Henry. Remembering that I have used addslashes() before inserting
the value into mysql in the first place.
The following query will fail on insert:
Sql = insert into orders (fname) SELECT fname from clients where
clientid = '$clientid';
David McInnis
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php