在mysql结果关联数组上使用mysqli_real_escape_string

时间:2018-08-01 18:03:00

标签: php mysql

我正在尝试将表的内容从一台服务器复制到另一台服务器上的重复表。这将是一个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());
}

0 个答案:

没有答案