我无法在数据库中插入带撇号的值

时间:2013-08-15 17:30:28

标签: php select option mysql-real-escape-string

我无法保存select选项的值:如果值为“T'est”,则无法在数据库中保存完整的字符串“T'est”。

if(isset($_POST['ul'])){            
    $festival_type = addslashes(mysql_escape_string($_POST['tf']));
    $query = mysql_query("INSERT INTO festival (festival_name) VALUES ('".$festival_type."')");            
    echo "Success!";
}

1 个答案:

答案 0 :(得分:0)

警告:自PHP 5.5.0起,不推荐使用mysql_escape_string()扩展名,将来会被删除。 在任何情况下,您都应该只使用一个转义规则。

如果$_POST['ul']有单词“T'est”,那么应该用引号保存 $festival_type使用addslashes会有“T \'est”。之后 MySQL将收到:INSERT INTO festival (festival_name) VALUES ('T\'est') 这意味着在数据库中它将保存为T'est,没有任何问题。

if(isset($_POST['ul'])){
    $festival_type = addslashes($_POST['tf']);
    $query = mysql_query("INSERT INTO festival (festival_name) VALUES ('".$festival_type."')");            
    echo "Success!";
}