MySQL 出现了一个问题,插入一个长字符串(二十几KB)结果导致被截断。 首先排除了数据类型的问题,用的 mediumtext 类型。
接着排除了 PHP 的问题,因为取出 SQL 直接在 MySQL 中执行还是被截断。
发现一点很奇怪,截断的那个长字符串差不多很接近 8KB,如果加上其他字段的内容,可能正好等于 8KB。
在网上搜了一下可能和以下两项设置有关:
[mysqld]
max_allowed_packet = 1M
net_buffer_length = 8K
但是我的 MySQL 中 max_allowed_packet
有 1M,排除,剩下的 net_buffer_length
就正好符合这个 8KB 的条件。
应该就是它没错了。
INSERT INTO errorlog (
`level`,
`description`,
`file`,
`line`,
`url`,
`context`,
`dateline`
) VALUES (
'1024',
'Error: [1024] hello world @ file:E:\abc.php line 150',
'E:\abc.php',
'150',
'www.example.com/index.php?mod=abc',
'[long_string...]',
'0'
)