2013-08-15 4 views
0

Я не могу сохранить значение опции выбора: если значение «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

Вы говорите, что используете mysql_real_escape_string() '. В ваш код входит 'mysql_escape_string()'. Который из них? – andrewsi

+1

Да, вы не можете. Помимо того, что делает mysql_real_escape_string, вы добавили SLASHES (добавляет - увидели имя?). Поэтому, как правило, вы не сохраните его, как «T'est». Читайте о параметризованных запросах –

+0

, так что же мне делать, чтобы сохранить значение T'est? я буду использовать mysql_real_escape_string? Я сделал это некоторое время назад, но только буква «T» была сохранена в базе данных, а не само слово или строка («T'est»). можете ли вы мне помочь, какой именно код для этого? – xerwudjohn

ответ

0

Предупреждение: расширение mysql_escape_string() является устаревшим PHP 5.5.0, и будут удалены в будущем. В любом случае вы должны использовать только одно правило эвакуации.

если $_POST['ul'] есть слово «T'est», и оно должно быть сохранено с цитатой, то $festival_type будет иметь «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!"; 
} 
Смежные вопросы