Re: Comparing multiple Mysql tables to find duplicates
| From: | Chris Bruce | Date: | Tue, 03 Feb 2004 16:09:12 +0000 |
| Subject: | Re: Comparing multiple Mysql tables to find duplicates | ||
| References: | 1 2 3 4 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-176689@lists.php.net to get a copy of this message | ||
HI John,
I have this working with the exception of when there is a ' in an email address that I want to remove.
I have modified your line { $email_list .= "'{$row['email']}',"; }, with { $email_list .= str_replace("'", "\'", "'{$r[email]}',"); }, but now it escapes all the single quotes. Is there a php function that escapes single quotes in Mysql queries? If not, do you know the best way to escape *only* single quotes in the email address string and not the single quotes surrounding the string?
Example (output of $email_list) 'this@that.com','this@o'that.com','etc...
Need to escape the this@o\'that.com
Thanks.
--
Chris Bruce
chris@idextrus.com
Idextrus
E-Business Architects
http://www.idextrus.com
3282 Wilmar Cres.
Mississauga, ON
L5L4B2
CA
905.828.9189
****************************************************************
This e-mail and its contents are privileged, confidential and
subject to copyright. If you are not the intended recipient,
please delete this e-mail immediately. Any unauthorized use
or disclosure of the information herein is prohibited.
On Jan 30, 2004, at 12:54 PM, John W. Holmes wrote:
From: "Chris Bruce" <chris@idextrus.com>Mysql 3.23.54. My first thought was to load the output from the tables into an array and they use a foreach and in_array to create a list of dups, but I wanted to see if there was an easier way.Ah, in that case, my other query won't work. :) This should: <?php $query = "SELECT list1.email FROM master_list, list1 WHERE master_list.email = list1.email"; $result = mysql_query($query) or die(mysql_error()); while($r = mysql_fetch_assoc($result)) { $email_list .= "'{$row['email']}',"; } $email_list = substr($email_list,0,-1); //remove last comma $query = "DELETE FROM list1 WHERE email IN ($email_list)"; $result = mysql_query($query) or die(mysql_error()); ?> Repeat for other tables. ---John Holmes... -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php