MySQL在单个字段中更新多个段落

时间:2012-07-12 19:35:44

标签: php mysql

不知道怎么说这个但我的问题是我的字段无法正确更新。我有一个页面设置,用户可以在其中更新作业列表,事件等内容。问题是一些描述长度为3个或更多段,并且在处理表单时,它不会正确更新数据库。当用户制作新项目时也会发生这种情况。

一次可以加载多少文字是否有限制?

以下是我正在使用的更新代码:

mysql_query("UPDATE tbl_workers_club SET eventdate='".$newDate."', theme='".$theme."', text='".$text."', contactperson='".$contactperson."', contactphone='".$phone."', dateentered='".$dateentered."' WHERE specialID='".$id."' ");

以下是新项目的代码:

mysql_query("INSERT INTO tbl_workers_club (eventdate, theme, text, contactperson, contactphone, dateentered)
VALUES ('$newDate', '$theme', '$text', '$contactperson', '$contactphone', '$dateentered')");

我没有看到这样的另一个问题,所以如果你知道一个让我知道的话。

2 个答案:

答案 0 :(得分:1)

查看MySQL max_allowed_packet A communication packet is a single SQL statement sent to the MySQL server, a single row that is sent to the client, or a binary log event sent from a master replication server to a slave.

的设置
mysql> select * from information_schema.global_variables where variable_name like 'max_allow%';
+--------------------+----------------+
| VARIABLE_NAME      | VARIABLE_VALUE |
+--------------------+----------------+
| MAX_ALLOWED_PACKET | 1048576        |
+--------------------+----------------+
1 row in set (0.00 sec)

答案 1 :(得分:1)

说出你得到的错误(或没有错误)将极大地帮助诊断这个问题。内容只是在数据库中“切断”了吗?或者是MySQL将错误抛回PHP?但是,这里有一些想法......

mysql_real_escape_string()是一个很好的起点。任何带有单个撇号的输入都会破坏您的代码。阅读关于SQL的清理用户输入,网上有大量资源。这绝对不是可选的。还要查看参数化查询/预准备语句,或者其中一个ORM库/框架。

如果您只是为很长的条目遇到问题,那么您的“文本”列也可能不足以容纳这些输入。 VARCHAR(X)只能容纳X个字符。请改用MEDIUMTEXT之类的东西。

使用POST而不是GET; GET对通过URL发送的值的大小有限制。 POST是发送创建/更改数据的请求时的常规方法。

如果没有关于你得到的错误的更多信息,很难说出问题是什么。