PHP Mysql复制一条记录到不同的数据库

标签 php mysql

我有两个独立的远程数据库,两个数据库中的表是相同的,我想使用 PHP 将一条记录从旧数据库复制到新数据库

虽然这the best way to copy new records from one database to another给出解决方案

mysqli_query($db1,"SELECT field1,field2,field3 FROM table1");

mysqli_query($db2,"INSERT INTO table1 (field1,field2,field3)");

由于涉及的字段数量我想尽量避免命名所有字段

我在想这样的事情......

$m = mysqli_query($db1,"SELECT * FROM table1");

****这就是我被卡住的地方****

我如何从上述声明中得到这一点?

$values = "'".implode("','",array_values($m))."'"; 
$columns = implode(",",array_keys($m));

所以我可以做到这一点

mysqli_query($db2,"insert into table1 ($columns) values ($values)")

我知道我需要将 PRIMARY KEY id 更改为 null。

最佳答案

要获取实际的列名,您可以这样做:

$sql="SELECT column_name FROM information_schema.columns WHERE table_schema = 'database_name' AND table_name = table1";

将上面的内容提取到一个数组中。

$result = $mysqli->query($query);
$cols = $result->fetch_array(MYSQLI_NUM);

并将逗号分隔的列表创建到 $columns-variable

$columns = implode(",", $cols);

对于值,只需执行常规选择语句:

$sql="SELECT * FROM table1";
$result = $mysqli->query($query);
$vals = $result->fetch_array(MYSQLI_NUM);

关于PHP Mysql复制一条记录到不同的数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16275925/

相关文章:

php - 将每个项目的折扣总额添加为 WooCommerce 订单项目元数据

php - 分割可变大小块的最节省内存的方法?

php - 存储来自 MySQL 的 10 个最新行

java - Jdbc列索引超出范围

PHP PDO 转义问号所以它不认为它是一个占位符

php 更具可读性的 if 语句

php - 如何保护数据库服务器?

php - 在Elasticsearch中查找类似主题(重复提名)

c# - 数据 GridView 中的数据不会直观地显示 C# SQL

MySQL正在做全表筛选