我有一个脚本可以循环 2000 条客户记录并将它们复制到另一个数据库中。有时它运行完美,有时它返回一个 mysql 错误,并带有与 PHP 中发送的查询不对应的消息。这是错误消息(PA K'2012-12-04 11:05:09')O DU LIC TE EY UPDA):
[0] => 数组
(`在此输入代码`
[级别] => 错误
[代码] => 1064
[消息] => 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以了解在 'PA K'2012-12-04 11:05:09' 附近使用的正确语法
)
O DU LIC TE EY UPDA' 在第 45 行
)
发生错误时在 PHP 中打印的查询:
插入
`客户`
(
`klantId`,
`naam`,
`地址`,
`邮政编码`,
`普拉斯`,
`电话`,
`移动`,
`传真`,
`电子邮件`,
`网站`,
`post_adres`,
`post_postcode`,
`post_plaats`,
`kvknummer`,
`btwnummer`,
`rekeningnr`,
`postbanknr`,
`邮寄`,
`创建`,
`修改`
)价值观
(
1134,
'纳姆',
'地址 9L',
'1234 SG',
'普拉茨',
无效的,
无效的,
无效的,
无效的,
'www.test.nl',
无效的,
无效的,
无效的,
无效的,
无效的,
无效的,
无效的,
1、
'2012-12-04 11:05:09',
'2012-12-04 11:05:09'
)
重复密钥更新
`naam`=值(`naam`),
`adres`=VALUES(`adres`),
`邮政编码`=VALUES(`邮政编码`),
`plaats`=VALUES(`plaats`),
`telefoon`=VALUES(`telefoon`),
`mobiel`=值(`mobiel`),
`传真`=值(`传真`),
`电子邮件`=值(`电子邮件`),
`网站`=值(`网站`),
`post_adres`=VALUES(`post_adres`),
`post_postcode`=VALUES(`post_postcode`),
`post_plaats`=VALUES(`post_plaats`),
`kvknummer`=值(`kvknummer`),
`btwnummer`=值(`btwnummer`),
`rekeningnr`=值(`rekeningnr`),
`postbanknr`=值(`postbanknr`),
`邮寄`=值(`邮寄`),
`created`=VALUES(`created`),
`修改`=值(`修改`)
;
我的脚本在公司实习,数据库在数据中心运行 extern。脚本运行 50% 正确 50% 错误...
提前致谢!!
添加了带循环的脚本:
`
$dbcon = getDbConnection();
$aClients = getClients(); // 返回对象
foreach ($aClients AS $oClient) {
$sQuery = ' 插入
`客户`
(
`klantId`,
`naam`,
`地址`,
`邮政编码`,
`普拉斯`,
`电话`,
`移动`,
`传真`,
`电子邮件`,
`网站`,
`post_adres`,
`post_postcode`,
`post_plaats`,
`kvknummer`,
`btwnummer`,
`rekeningnr`,
`postbanknr`,
`邮寄`,
`创建`,
`修改`
)价值观
(
' . $dbcon->real_escape_string($oClient->id) 。',
' . $dbcon->real_escape_string($oClient->naam) 。',
' . $dbcon->real_escape_string($oClient->adres) 。',
' . $dbcon->real_escape_string($oClient->postcode) 。',
' . $dbcon->real_escape_string($oClient->plaats) 。',
' . $dbcon->real_escape_string($oClient->telefoonnummer) 。',
' . $dbcon->real_escape_string($oClient->mobielnummer) 。',
' . $dbcon->real_escape_string($oClient->faxnummer) 。',
' . $dbcon->real_escape_string($oClient->emailadres) 。',
' . $dbcon->real_escape_string($oClient->website) 。',
' . $dbcon->real_escape_string($oClient->afwijkend_adres) 。',
' . $dbcon->real_escape_string($oClient->afwijkend_postcode) 。',
' . $dbcon->real_escape_string($oClient->afwijkend_plaats) 。',
' . $dbcon->real_escape_string($oClient->kvknummer) 。',
' . $dbcon->real_escape_string($oClient->btwnummer) 。',
' . $dbcon->real_escape_string($oClient->bankrekening) 。',
' . $dbcon->real_escape_string($oClient->postbank) 。',
' . $dbcon->real_escape_string($oClient->mailing == 'ja' ? 1 : 0) 。',
' . $dbcon->real_escape_string($oClient->created) 。',
' . $dbcon->real_escape_string($oClient->modified) 。'
)
重复密钥更新
`naam`=值(`naam`),
`adres`=VALUES(`adres`),
`邮政编码`=VALUES(`邮政编码`),
`plaats`=VALUES(`plaats`),
`telefoon`=VALUES(`telefoon`),
`mobiel`=值(`mobiel`),
`传真`=值(`传真`),
`电子邮件`=值(`电子邮件`),
`网站`=值(`网站`),
`post_adres`=VALUES(`post_adres`),
`post_postcode`=VALUES(`post_postcode`),
`post_plaats`=VALUES(`post_plaats`),
`kvknummer`=值(`kvknummer`),
`btwnummer`=值(`btwnummer`),
`rekeningnr`=值(`rekeningnr`),
`postbanknr`=值(`postbanknr`),
`邮寄`=值(`邮寄`),
`created`=VALUES(`created`),
`修改`=值(`修改`)
;';
$dbcon->query($sQuery);
}`
上次编辑:在与数据库服务器相同的服务器上尝试了该脚本,但没有发生。它发生在某个地方...
设置为:脚本在服务器 A 上运行,数据库在服务器 B 上运行。网络不同,因此使用 Internet 进行数据库连接。某处数据丢失...