好的,对我来说这是一个新的。基本上我有一篇表格文章:
id: int auto increment
title: varchar(200)
description: varchar(1000)
ctext: longtext
chtml: longtext
现在我使用mysql_query:
插入此表INSERT INTO articles
(title, description, ctext, chtml)
VALUES
('$title', '$description', '$text', '$html')
所有值都已通过mysql_escape_string()传递。
这里的文字和html大小约为5k(所以我不能在这里发布完全查询)。
现在,问题在于:查询有效。插入一个新行。但是ctext和chtml列是空。这是MySQL 5.0.51a和PHP 5.2.8。就我所知,没有任何错误。
现在我将查询转储到/ tmp中的文件并使用以下命令运行:
mysql -u username -p dbname < /tmp/query
同样的事情。
我将查询复制到Navicat并且它......工作。
那到底是怎么回事?
答案 0 :(得分:2)
一些随意的想法:
mysql_escape_string
? 添加:MySQL连接默认为latin1,您需要使用mysql_query("SET NAMES 'utf8'")
之类的内容来传输unicode字符。
答案 1 :(得分:1)
我不确定这是否重要,但mysql_escape_string
已被弃用并替换为mysql_real_escape_string
您是否尝试过较小的文字?