php - mySQL中如何转义字符串

标签 php mysql

我正在尝试构建一个脚本(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());
}

最佳答案

您考虑过使用 PDO 吗?在不知道你想要的行的情况下无法给你确切的代码,你只能做类似的事情

$sql="SQL STATEMENT WITH :name"
$dbh->prepare($sql)
$dbh->execute(array(':name' => $cat2ss['name']));

关于php - mySQL中如何转义字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20166413/

相关文章:

javascript - PHP表行跨度基于关键mysql的总计

php - 如何在firefox操作系统中使用mysql数据库?

MySQL 将 3 个查询合并为 1 个

php - 从表单插入多个值

php - 可配置产品中的 Magento 属性排序顺序

php - Wordpress导致Docker崩溃

php - mysql_query 返回空值

mysql - SELECT random 但每个名字应该至少选择一次

Mysql连接四张表显示NULL值

PHP - 关注通过网站运行 bash 脚本