【发布时间】:2013-11-23 18:51:28
【问题描述】:
我正在尝试构建一个脚本 (php),在其中将某些数据库字段从旧数据库复制到新数据库。
某些字段包含特殊字符,例如 ',当帖子包含此内容时,我无法解决脚本崩溃的问题。我试过了:
mysql_real_escape_string($cat2ss['name']) 和 mysql_real_escape_string(htmlspecialchars($cat2ss['name']))
但它们都崩溃了。
任何想法如何解决这个问题?
这是一个示例代码:
$cat2s="SELECT * FROM o_product_description";
$cat2s_ex=mysql_query($cat2s) or die('<p>'.$cat2s.'</p>'.mysql_error());
while($cat2ss = mysql_fetch_array($cat2s_ex))
{
$cat2sc = "INSERT INTO product_description (product_id, language_id, name, description, quality, catalog, cat_no, cat_val, cancellation, meta_description, meta_keyword, seo_keyword, catalogue, sort_order, attribut) VALUES ('".$cat2ss['product_id']."', '".$cat2ss['language_id']."', '".mysql_real_escape_string($cat2ss['name'])."', '".mysql_real_escape_string($cat2ss['description'])."', '".$cat2ss['quality']."', '".$cat2ss['catalog']."', '".$cat2ss['cat_no']."', '".$cat2ss['cat_val']."', '".$cat2ss['cancellation']."', '".$cat2ss['meta_description']."', '".$cat2ss['meta_keyword']."', '".$cat2ss['seo_keyword']."', '".$cat2ss['catalogue']."', '".$cat2ss['sort_order']."', '".$cat2ss['attribut']."')";
$cat2sc_ex=mysql_query($cat2sc) or die('<p>'.$cat2sc.'</p>'.mysql_error());
}
【问题讨论】:
-
脚本崩溃时会发生什么?您收到什么样的通知或错误?
-
你能发布更多吗?您遇到问题的示例查询会更有洞察力。在任何情况下,这些函数都不应使用,它们已从 PHP 中删除,最佳做法是 spend a half hour to learn PDO 并改用它。
-
脚本一直运行,直到遇到带有特殊字符 ) 的文本字符串,例如 ')。请参阅以下错误消息:
-
...值('10778','2','','','vht','','F.52','0','lyckÃ¥sgÃ¥rd ', '', 'F.52, 5 öre Oscar II, LYCKÃ...S'GÃ...RD 15-11-03 [F/SM] vht', 'f52-5-re-oscar-ii-lycksgrd- 15-11-03-fsm-vht', '', '0', '')