значение не вводится в дБ - PullRequest
0 голосов
/ 06 августа 2010

Я хочу сохранить более 1000 символов в базе данных, я использую базу данных MySQL.

Когда я вставляю 50-100 символов, код выполняется успешно.Но когда я вставляю 1000 символов, он не вставляется.Это также не выдает ошибку.

Когда я использую аналогичный запрос вставки в phpMyAdmin, запрос выполняется успешно.это запрос, первые два поля varchar и последнее поле Longtext:

INSERT INTO news (headline,date,discription)
VALUES ("hi","date","A crumbling pitch and some resurgent Indian bowling have set up a gripping deciding Test with the series lead threatening to slip out of the hosts' grasp. India had snuck ahead at the end of the third day, but were dominant by lunch on the fourth as Pragyan Ojha and Amit Mishra ran through the Sri Lankan batting. Thilan Samaraweera, the centurion from the first innings, held firm and is key to Sri Lanka's fortunes as they try to build a lead that is competitive enough to give their spinners a chance. ")

Это успешно выполняется в phpMyAdmin

Но когда я пытаюсь запустить его в PHP, он можетне запускается.

Вот код PHP:

 $insert = "INSERT INTO news (headline,date,discription)
 VALUES ('".$_POST['headline']."','".$_POST['date5']."','".$_POST['discription']."')";
 $add_news = mysql_query($insert);

и этот код используется в теге

<textarea rows="2" cols="2" style="overflow: scroll; height: 90px; width: 635px;" name="discription"></textarea>

1 Ответ

2 голосов
/ 06 августа 2010

Используйте функцию mysql_real_escape_string перед строковыми переменными, например:

mysql_real_escape_string($_POST['discription'])

Это может быть наиболее вероятным, поскольку текст содержит одинарные кавычки, которые следует экранировать.

mysql_real_escape_string - исключает специальные символы в строке для использования в операторе SQL

Ваш код должен выглядеть следующим образом:

$headline = mysql_real_escape_string($_POST['headline']);
$description= mysql_real_escape_string($_POST['discription']);
$date= mysql_real_escape_string($_POST['date5']);

$insert = "INSERT INTO news (headline,date,discription) VALUES ('".$headline."','".$date."','".$description."')";
$add_news = mysql_query($insert) or die(mysql_error());

Обратите внимание, что добавление or die(mysql_error() в конце это сообщит вам, есть ли какая-либо ошибка в самом запросе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...