PHP将数据从一个表插入另一个表

时间:2014-08-07 08:39:36

标签: php mysql

<?php
$con=mysqli_connect("localhost","usr","pwd","db");
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$result = mysqli_query($con, "SELECT id, Name, email FROM users WHERE status='ACTIVE'");
while($row = mysqli_fetch_array($result)){
//  echo $row['Name']. " - ". $row['email'];
//  echo "<br />";
$userid = $row['id'];
$username = $row['Name'];
$email = $row['email'];
mysqli_query($con, "INSERT INTO other_user (user_id, username, email)
VALUES ($userid, $username, $email)");
}
mysqli_close($con);
?>

我有上面的代码我试图将数据从一个表插入另一个表 上面的代码不会返回任何错误,但它不会将任何数据放到第二个表&#34; other_user&#34;

4 个答案:

答案 0 :(得分:1)

单个查询就足够了:

$result = mysqli_query($con, "INSERT INTO other_user (user_id, username, email) 
    SELECT id, Name, email FROM users WHERE status='ACTIVE'");

不需要逐行插入令人痛苦的慢速。

PS:原始错误是在您的值周围留下了引号。

答案 1 :(得分:1)

您应该使用mysqli prepared statement将数据插入表格。现在你不在查询中使用引号(这可能就是为什么数据没有插入到第二个表中),即使你是,它仍然容易受到SQL注入

答案 2 :(得分:1)

INSERT查询中存在错误 - 您必须将字符串括在引号中,如下所示:

  

&#34; INSERT INTO other_user(user_id,username,email)   VALUES($ userid,&#39; $ username&#39;,&#39; $ email&#39;)&#34;

答案 3 :(得分:0)

我认为您应该仔细检查新表的表格设计。 检查列名称和类型是否符合预期。 新表中的user_id也可能是自动增量索引,而不是必须插入。