我正在使用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”在数据库中。请让我知道如何解决它。
答案 0 :(得分:1)
首先,请不要将mysql_*
函数用于新代码。他们是deprecated。将prepared statements与PDO或MySQLi一起使用。
现在,如果您坚持使用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
}
为简洁而故意省略错误处理代码