1

不知道该怎么说,但我的问题是我的字段不会正确更新。我设置了一个页面,用户可以在其中更新工作列表、事件等。问题是某些描述有 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')");

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

4

2 回答 2

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)
于 2012-07-12T20:01:38.877 回答
1

说出您遇到的错误(或没有错误)将极大地帮助诊断此问题。内容只是在数据库中“截断”了吗?还是 MySQL 将错误返回给 PHP?然而,这里有一些想法......

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

如果您只是在很长的条目上遇到问题,您的“文本”列也可能不够大,无法容纳这些输入。VARCHAR(X) 只能保存 X 个字符。改用 MEDIUMTEXT 之类的东西。

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

如果没有更多关于您遇到的错误的信息,很难说问题出在哪里。

于 2012-07-12T20:11:53.797 回答