<?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;
答案 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也可能是自动增量索引,而不是必须插入。