我有两个独立的远程数据库,两个数据库中的表是相同的,我想使用 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/