2012-02-21 20 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

相关问题