如何在mySQL中转义字符串

时间:2013-11-23 18:51:29

标签: php mysql

我正在尝试构建一个脚本(php),我将旧数据库中的某些数据库字段复制到新数据库中。

某些字段包含特殊字符,例如'我无法解决当帖子包含此内容时脚本崩溃的问题。我尝试过:

mysql_real_escape_string($ cat2ss [ '名称']) 和 mysql_real_escape_string(用htmlspecialchars($ cat2ss [ '名称']))

但他们都崩溃了。

任何想法如何解决这个问题?

这是一个示例代码:

$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());
}

2 个答案:

答案 0 :(得分:2)

您是否考虑过使用PDO?如果不知道您想要的行,就无法给出确切的代码,您只需执行类似

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

答案 1 :(得分:0)

我猜你错过了数据库连接ID。你的代码应该是这样的:

$db = mysql_connect();
$var = mysql_real_scape_string($db, $the_string_to_scape);

当然,您必须使用正确的参数连接到数据库。