我想从本地数据库更新远程数据库,我已经写了php脚本来做这件事,但它显示我致命的错误。
远程数据库和本地数据库名称相同,表相同,字段相同。
我试过这种方法,但不起作用。
$tablename="pc_games";
$database = 'games';
$local_query = "SELECT * FROM $tablename LIMIT 100 OFFSET $remoterows";
$local_result = mysql_query($local_query, $connection) or trigger_error("SQL", E_USER_ERROR);
while($list=mysql_fetch_array($local_result))
{
$remote_update=mysql_query("INSERT INTO $tablename SETLECT * from $tablename");
$remote_update_result = mysql_query($remote_update, $remote_connection) or trigger_error("SQL", E_USER_ERROR);
}请查看并建议任何可能的方法来做到这一点。
发布于 2012-09-16 15:03:59
"INSERT INTO $tablename SETLECT * from $tablename"这是无效的SQL语句。集合必须是SELECT
发布于 2012-09-16 15:04:44
您的远程查询存在语法错误:"INSERT INTO $tablename SETLECT * from $tablename"。你指的是SELECT而不是SETLECT。
发布于 2012-09-16 15:05:27
替换代码:
$tablename="pc_games";
$database = 'games';
$local_query = "SELECT * FROM $tablename LIMIT 100 OFFSET $remoterows";
$local_result = mysql_query($local_query, $connection) or die(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 die (mysql_error());
}你做错了,是你打错了这一行:
$remote_update=mysql_query("INSERT INTO $tablename SETLECT * from $tablename");注意,您使用的是SETLECT,而不是您想要使用的(可能):SELECT。
我还对检测输入错误所需的时间感到惊讶。
我把你所有的错误处理程序都改成了我在评论中提到的那些。在将来使用它们。他们好多了。
更新:你对你的代码做了什么?我刚刚意识到一些极端的事情:
$remote_update=mysql_query("INSERT INTO $tablename SELECT * from $tablename");
$remote_update_result = mysql_query($remote_update, $remote_connection) or die (mysql_error());首先,您正在对结果运行mysql_query。其次,您没有插入任何INSERT INTO $tablename。是我的错,还是你做了什么大错特错?
https://stackoverflow.com/questions/12444990
复制相似问题