[英]PHP inserting data from one table to another
<?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);
?>
我有上面的代碼,我正在嘗試將數據從一個表插入到另一個表中。上面的代碼不返回任何錯誤,但沒有將任何數據放入第二個表“ other_user”
一個查詢就足夠了:
$result = mysqli_query($con, "INSERT INTO other_user (user_id, username, email)
SELECT id, Name, email FROM users WHERE status='ACTIVE'");
不需要痛苦的緩慢的逐行插入。
PS:最初的錯誤是在值周圍遺漏了引號。
您應該使用mysqli prepare語句將數據插入表中。 現在,您無需在查詢中使用引號(這可能就是為什么數據未插入第二張表的原因),即使您使用了引號,SQL注入仍然很容易受到攻擊。
INSERT查詢中存在錯誤-您必須將字符串用引號引起來,如下所示:
“將INSERT INTO other_user(用戶名,用戶名,電子郵件)VALUES($ userid,'$ username','$ email')”
我認為您應該仔細檢查新表的表設計。 檢查列名和類型是否符合您的期望。 另外,新表中的user_id可能是一個自動增量索引,因此不必插入。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.