Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP和MySQL中,仅将特定行从一个表复制到另一个表_Php_Mysql_Text_Row - Fatal编程技术网

在PHP和MySQL中,仅将特定行从一个表复制到另一个表

在PHP和MySQL中,仅将特定行从一个表复制到另一个表,php,mysql,text,row,Php,Mysql,Text,Row,我有一个mysql数据库,其中包含用户的电子邮件、icq、skype等,还有一个文本文件,其中包含每行数据库中的一些电子邮件地址。 我要做的是将文本文件中每个用户的数据库中的整行从一个表复制到另一个表中 这是我的密码: $filename="123.txt"; $fp = @fopen($filename, 'r'); $array = explode("\n", fread($fp, filesize($filename))); $id = 1; while($id <= 500){

我有一个mysql数据库,其中包含用户的电子邮件、icq、skype等,还有一个文本文件,其中包含每行数据库中的一些电子邮件地址。 我要做的是将文本文件中每个用户的数据库中的整行从一个表复制到另一个表中

这是我的密码:

$filename="123.txt";
$fp = @fopen($filename, 'r'); 
$array = explode("\n", fread($fp, filesize($filename)));

$id = 1;
while($id <= 500){
$user = $array[$id];
$copy = mysql_query("INSERT INTO newusers SELECT * FROM oldusers WHERE email='$user'");
echo "$user<br>";
$id++;
}
它很好用。
我应该如何管理我的代码,以便它从文本中读取数据并在SQL中使用它?

而不是您可以使用foreach

foreach ($array as $user) {
  mysql_query("INSERT INTO newusers SELECT * FROM oldusers WHERE email='{$user}'");
}

我用代码得到了这个结果:

$filename="123.txt";   
$handle = fopen($filename, "rb");
$contents = fread($handle, filesize($filename));
$ex = preg_split('/\s+/', $contents);
foreach ($ex as $user) {   
  echo "$user";
  mysql_query("INSERT INTO newusers SELECT * FROM oldusers WHERE email='{$user}'");
  }    
fclose($handle);
问题是,在逐行阅读文本文件后,我在每封电子邮件后都会得到一个空格,所以输出结果如下:

some@thing.com any@thing.com goo@gle.net etc.

因为每个电子邮件后面都有这个空间,所以电子邮件是不同的。但是通过调用preg_split(),我删除了空格,一切正常。我希望我写的可以理解

在您采取另一个步骤之前,请参阅sql注入、弃用的mysql_uAPI和prepared StatementThanks for tip,但它仍然不想将数据插入表中。请执行
echo mysql_error()。
'
而不是
echo$user.
'
,这样我们就可以看到您得到的错误。这可能是由于自动增量值造成的。如果是这样,您应该将代码更新为:
“插入新用户(列表,of,字段,除外,id)从列表,of,字段,除外,id中选择oldusers,其中email='{$user}'
。我假设
id
是自动递增的行。
some@thing.com any@thing.com goo@gle.net etc.