Sql insert не будет вставлять текст длиннее 40 символов - PullRequest
0 голосов
/ 22 июня 2009

По какой-то причине я не могу опубликовать текст длиной более 40 ~ символов.

код

// remove space
foreach($_POST as $key => $val) $_POST[$key] = trim($val);

// check for empty fields
if (empty($_POST['comment'])) {
header("Refresh: 2; url=$_SERVER[REQUEST_URI]");
 exit('<div class="error_msg">You can\'t post a blank message.</div>');
}

// save if no problem
else {
mysql_query("INSERT INTO comments (comment, content, content_id, poster, date)
             VALUES('{$_POST['comment']}', 'thread', '$thread_id', '1', NOW())");

header("refresh: 2; url=thread.php?id=$thread_id");

// SUCCESS
}

Db:

`id` int(11) NOT NULL AUTO_INCREMENT,
`comment` text,
`content` varchar(255) NOT NULL,
`content_id` int(11) NOT NULL DEFAULT '0',
`poster` int(11) NOT NULL DEFAULT '0',
`date` datetime NOT NULL

есть идеи?

и да, я собираюсь продезинфицировать $ _post

спасибо Tomasz

1 Ответ

1 голос
/ 22 июня 2009

Попробуйте базовую отладку:

$sql = "INSERT INTO comments (comment, content, content_id, poster, date)
         VALUES('{$_POST['comment']}', 'thread', '$thread_id', '1', NOW())";
echo "$sql<br />";
mysql_query($sql);

Затем вырезайте и вставляйте то, что выводится в клиент командной строки MySQL, и смотрите, получаете ли вы какие-либо сообщения.

Единственное, о чем я могу думать, это размер пакета MySQL, но это очень далеко:

mysql> show variables like '%packet%';
+--------------------+-----------+
| Variable_name      | Value     |
+--------------------+-----------+
| max_allowed_packet | 268435456 | 
+--------------------+-----------+
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...