gpt4 book ai didi

php - 将新行从本地表插入到远程表

转载 作者:行者123 更新时间:2023-11-29 05:33:51 25 4
gpt4 key购买 nike

我想从本地表插入新行到远程表,我已经为它制作了一个 php 脚本,但它不工作。

远程和本地 - 数据库、表和字段相同。

我是这样做的

//connection
$remote_hostname='xxx.xxx.xxx.xxx:3306';
$hostname='localhost';
$username = 'username';
$password = 'password';
$remote_connection = mysql_connect($remote_hostname, $username, $password);
$connection = mysql_connect($hostname, $username, $password);

$tablename="pc_games";
$database = 'games';

// some row count here $remoterows

$local_query = "SELECT * FROM $tablename LIMIT 100 OFFSET $remoterows";
$local_result = mysql_query($local_query, $connection) or trigger_error(mysql_error());

while($list=mysql_fetch_array($local_result))
{
$remote_update=mysql_query("INSERT INTO $tablename SELECT * from $tablename");
$remote_update_result = mysql_query($remote_update, $remote_connection) or trigger_error(mysql_error());
}

这不起作用并显示错误 Duplicate entry '1' for key 'PRIMARY',但没有重复条目。

如果我这样做它会起作用,新行会插入到远程数据库中。

while($list=mysql_fetch_array($local_result))
{
$id=$list['id'];
$pflink=$list['pflink'];
$image=$list['image'];
$pagelink=$list['pagelink'];
$title=$list['title'];
// and so on...

$remote_update=mysql_query("INSERT INTO $tablename SET id='$id', image='$image', pagelink='$pagelink', title='$title'......");
$remote_update_result = mysql_query($remote_update, $remote_connection) or trigger_error(mysql_error());
}

我在数据库中有很多列,还有很多数据库,我想用第一种方式来做,因为我想将这些代码重新用于另一个数据库,只需更改 $database$表名在另一个数据库的要求文件中。

请查看并提出任何可行的方法。

最佳答案

您不能在一个请求中跨越本地和远程查询:

$remote_update=mysql_query("INSERT INTO $tablename SELECT * from $tablename");

这应该从本地选择获取数据并将其插入远程数据库

查询在 1 个数据库上运行,并且仅在 1 个数据库上运行。您正在尝试从表中获取数据并将其插入到同一个表中。当然,这会产生 Duplicate entry '1' for key 'PRIMARY'

关于php - 将新行从本地表插入到远程表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12445909/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com