2012-02-21 46 views
0

我有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';?> 

根據這段代碼只插入了一條記錄。我怎樣才能插入所有檢索到的記錄?

+0

-1前問一個數據庫備份**不是真正的問題**你真的需要一個答案。 – 2012-02-21 05:51:17

回答

1

將記錄插入到你需要一個單一的查詢另一個表,從MySQL控制檯沒有運行PHP:

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)); 

總是有這樣的操作

+0

它的查詢將不會在我的程序堂妹工作的I HV插入散列密碼db_database.account這就是爲什麼我使用的PHP:d – pico 2012-02-21 05:49:41

+0

可以散列在同一個查詢密碼。 – 2012-02-21 05:50:17

+0

你甚至不需要爲這個另一個表。你可以在同一個表 – 2012-02-21 05:52:19

相關問題