mysql_real_escape-string函数中的错误没有转义特殊字符

时间:2013-02-20 19:02:03

标签: mysql

我正在使用mysql_real_escape_string函数从文本中转义特殊字符以将数据插入到数据库中。如果我使用变量,它就无法正常工作。

echo  $ab=$_POST['textarea'];
when I print $ab it is showing like the following text;
$ab= ction throws js error we'll special charac
echo $av=mysql_real_escape_string($av);

当我抓住$ av时,它显示以下字符串

ction throws js error we'll special charac

当我在插入查询中使用$ av值时,它只插入一半测试“ction throws js error we”在数据库中。请让我知道如何解决它。

1 个答案:

答案 0 :(得分:1)

首先,请不要将mysql_*函数用于新代码。他们是deprecated。将prepared statementsPDOMySQLi一起使用。

现在,如果您坚持使用mysql_*扩展,请执行此类操作

$ab="";
if (isset($_POST['textarea']) && $_POST['textarea']) {
    $ab = $_POST['textarea'];
}
if (!$db = mysql_connect('mysql_host', 'mysql_user', 'mysql_password')) {
    //connection error
} 
if (!mysql_select_db('dbname', $db)) {
    //error selecting db
}
if (!$ab = mysql_real_escape_string($ab)) {
    //error while escaping
}
$query = sprintf("INSERT INTO table VALUES('%s')", $ab);
if (!mysql_query($query)) {
    //error executing query
}

为简洁而故意省略错误处理代码