簡體   English   中英

檢索所有記錄並從另一個數據庫插入另一個表

[英]Retrieve all record and insert to another table form another db

我對php和mysql有麻煩。 我必須從DB1的表中檢索所有記錄,然后將它們再次插入到DB2的表中。

<?php
require_once 'includes/config.php';
include 'includes/header.php';
if(isset($_POST['go'])){        
    $query = mysql_query("SELECT id,username,password FROM $db_database1.account")
        or die(mysql_error());

    echo "Record ".mysql_num_rows($query)." retrieve";

    while($result_row = mysql_fetch_array($query, MYSQL_ASSOC)){
        $account_ID = $result_row['id'];
        $username = $result_row['username'];
        $password = $result_row['password'];
        $query = mysql_query("INSERT INTO $db_database2.account(uid,username,password) VALUES('$account_ID','$username','$password')")
            or die(mysql_error());
        $selectId = mysql_insert_id();
    }
}
mysql_close($conn);
?>
<div class="wrapper">
<div class="content">
<form method="post" action="<?PHP $_SERVER['PHP_SELF'];?>">
<input type="submit" name="go" value="Go" />
</form>
</div>
<?php include 'includes/footer.php';?>

根據此代碼,僅插入了一條記錄。 如何插入所有檢索到的記錄?

要將記錄插入到另一個表中,您需要一個查詢,可以在沒有PHP的情況下從mysql控制台運行:

INSERT INTO db_database2.account SELECT id,username,password FROM db_database1.account

有關代碼的注釋

  • 您必須轉義要添加到查詢中的字符串
  • 由於某種原因,您正在插入同一數據庫
  • 詢問mysql_insert_id()沒有意義,因為您顯然已經在插入a_i id
  • 沒有將第二個mysql_query結果存儲到變量中的用途
  • 但是此變量被覆蓋<-這是您的代碼運行一次的原因。
  • 這里沒有回顯$_SERVER['PHP_SELF'] 只需將表單操作留空即可。
  • 但是您實際上將表單操作留為空白,因為您只是忘了echo此變量
  • 我在這里看不到所有形式和HTML的用處。 您不能在沒有表單的情況下運行此代碼嗎?

因為似乎整個混亂只是散列密碼,所以您不需要額外的表
很簡單

UPDATE account SET password = md5(concat(id,username,password));

在進行此類操作之前,總是要有數據庫備份

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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