0

我正在使用 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 值时,它仅在数据库中插入一半测试“操作引发 js 错误我们”。请让我知道我该如何解决。

4

1 回答 1

1

首先,请不要将mysql_*函数用于新代码。它们已被弃用。对PDOMySQLi使用 准备好的语句

现在,如果您仍然坚持使用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
}

为简洁起见,故意省略了错误处理代码

于 2013-02-20T19:58:19.203 回答