首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL插入删除数据

问MySQL插入删除数据
EN

Stack Overflow用户
提问于 2009-03-13 01:51:22
回答 2查看 487关注 0票数 0

好的,这是给我的新的。基本上我有一张桌子上的物品:

代码语言:javascript
复制
id: int auto increment
title: varchar(200)
description: varchar(1000)
ctext: longtext
chtml: longtext

现在,我使用mysql_query对这个表进行插入:

代码语言:javascript
复制
INSERT INTO articles
(title, description, ctext, chtml)
VALUES
('$title', '$description', '$text', '$html')

所有的值都通过mysql_escape_string()传递。

这里的文本和html的大小大约是50k (所以我不能在这里发布完整的查询)。

现在,问题是:查询可以工作。插入新行。但是,ctext和chtml列是空。这是MySQL 5.0.51a和PHP5.2.8。据我所知,没有出现任何错误。

现在,我将查询转储到/tmp中的一个文件中,并使用:

代码语言:javascript
复制
mysql -u username -p dbname < /tmp/query

同样的事情,

我把查询复制到Navicat然后它..。很管用。

那到底是怎么回事?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-03-13 02:13:01

一些随机的想法:

  • 您是否尝试过控制文本长度,看看它是否仅在某一点上失败?
  • 你要打开什么样的连接?哪个司机?
  • 您检查了连接的编码吗?可能会发送一些无效字符。
  • 你试过使用参数而不是mysql_escape_string吗?
  • 您是否尝试过直接从Navicat的同一个文件执行而不是使用复制粘贴?同样,可能与未通过复制粘贴传递但保存在文件中的无效字符有关。
  • 为了涵盖我们经常忘记的基础知识,如何验证数据没有被插入?我是说,你怎么把它想象出来?您可以有一个行间隔,它隐藏了第2行的第3种可视化方式。希望渺茫,但我见过这种事。

加法:MySQL连接默认为latin1,您需要使用像mysql_query("SET NAMES 'utf8'")这样的方法来传输unicode字符。

票数 2
EN

Stack Overflow用户

发布于 2009-03-13 01:54:15

我不确定这是否重要,但是mysql_escape_string已经被mysql_real_escape_string取代了

你试过用较小的文字吗?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/641198

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档