首页 > 解决方案 > 在 mysql 结果关联数组上使用 mysqli_real_escape_string

问题描述

我正在尝试将表的内容从一台服务器复制到另一台服务器上的重复表。这将在一个 cronjob 中。只有大约 200 条记录需要每天更新。我不想使用 PHPMYAdmin、Navicat 等,因为我希望它通过服务器运行。我在复制之前截断目标表。

我在这里遵循示例:https ://stackoverflow.com/a/23657043/2413654 ($L1 是到服务器 1 的连接,$L2 是服务器 2)

但是源表中的某些数据包含撇号等,插入失败。

我尝试在下面的迭代中将 mysqli_real_escape_string 添加到 $v 的值,但它仍然在数据中遇到的第一个撇号上出错。

有什么建议么?有没有更好的方法来完成这项任务?

这是我的代码:

$re = mysqli_query($L1, "SELECT * FROM ft_form_2");
$keyfield = 'submission_id';

while($i=mysqli_fetch_assoc($re))

{
    $u = array();
        foreach($i as $k=>$v) 

            $v = mysqli_real_escape_string($L2,$v); // added, but not working

    if($k!=$keyfield) $u[] = "$k='$v'";
    mysqli_query($L2,"INSERT INTO ft_form_2_test (".implode(',',array_keys($i)).") 
    VALUES ('".implode("','",$i)."') ON DUPLICATE KEY UPDATE ".implode(',', $u)) 
        or die(mysqli_error());
}

标签: phpmysql

解决方案


推荐阅读