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

标签 php mysql

我在 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'] 没有任何用处。只需将表单操作留空即可。
  • 但实际上您将表单操作留空,因为您只是忘记回显此变​​量
  • 我认为这里的所有表单和 HTML 都没有用。您不能在没有表单的情况下运行此代码吗?

因为看起来整个困惑只是为了散列密码,所以你不需要额外的表
很简单

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

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

关于php - 检索所有记录并从另一个数据库插入到另一个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9372658/

相关文章:

php - Doctrine DBAL 可以与 ORM Query Builder 混合使用吗?

php - ACF 自定义查询 GET URL

php - strip <br>(n12br) 从数据库字段获取

mysql - 如何使用 LIKE 在 MySQL 中以没有特定顺序的所有可能选项搜索 5 个不同的字段

mysql - Sql 组合列的第一个值和最后一个值来创建第三列的范围

php - Laravel @extends 和 @include

带有 while 循环的 php 回显表

PHP 没有看到 mysql 扩展

php - Docker容器本地连接MySQL数据库->重定向到另一个容器

php - 如何根据php mysql中的id更新一行的总和