我正在尝试将图像Blob从一个表复制到另一个表,但由于mysql_real_escape_string()不再可用,所以它不起作用。 Blob中的特殊字符阻止了插入,我无法弄清楚如何解决此问题。您的帮助将不胜感激。谢谢。
foreach ($dbh->query($query_images) as $images-1) {
$ins = "INSERT INTO images-2 SET image_blob='".images-1['image_blob']."'";
$dbh->exec($ins);
}
答案 0 :(得分:0)
首先,您拥有:
$ins = "INSERT INTO images-2 SET image_blob='".images-1['image_blob']."'";
可能的时候:
$ins = "INSERT INTO images-2 SET image_blob='".$images-1['image_blob']."'";
但这可能只是您的帖子中的错字。
您可以在纯MySQL中执行此操作,而不必遍历images-1表中的每一行:
INSERT INTO images-2 (image_blob) VALUES (SELECT image_blob FROM images-1)
如果是某种转义问题,我建议您使用PHP中的PDO东西:
$pdo = new PDO('mysql:host=hostname;dbname=db', $user, $pass);
foreach($dbh->query($query_images) as $images-1) {
$sth = $pdo->prepare("INSERT INTO images-2 SET image_blob=?")
$sth->execute([$images-1['image_blob']]);
}
我没有测试任何代码,只是根据文档和经验将它们组合在一起。