簡體   English   中英

PHP將數據從一個表插入到另一個表

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM