检索所有记录并从另一个数据库插入另一个表

时间:2012-02-21 05:30:07

标签: php mysql

我有关于php& amp的麻烦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';?>

根据此代码,只插入了一条记录。如何插入所有检索到的记录?

1 个答案:

答案 0 :(得分:1)

要将记录插入另一个表,您需要一个查询,从没有PHP的mysql控制台运行:

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

您的代码备注

  • 您必须转义要添加到查询中的字符串
  • 由于某种原因您正在插入同一个数据库
  • 要求mysql_insert_id()毫无意义,因为你显然已经插入了a_i id
  • 将第二个mysql_query结果存储到变量
  • 中是没有用的
  • 此变量被覆盖&lt; - 这就是您的代码运行一次的原因。
  • 此处回显$_SERVER['PHP_SELF']没有用处。只是将表格动作留空。
  • 然而,您实际上只是忘记echo此变量
  • 而将表单操作留空
  • 我认为这里没有使用所有表单和HTML。你不能在没有表格的情况下运行这段代码吗?
因为似乎整个混乱只是哈希密码,所以你不需要额外的表格 只是简单

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

在此类操作之前始终有数据库备份