【问题标题】:Problem to insert into mysql table插入mysql表的问题
【发布时间】:2010-12-30 11:41:57
【问题描述】:

我已经编写了一个脚本来发送消息。但问题是,尽管我已将“mail”设置为 VARCHAR 且长度为 30005,但当我键入更长的消息时,它无法插入表中。

我正在使用这个查询..

mysql_query("INSERT INTO `mailbox` (`id` ,`receiver` ,`mail` ,`sender` ,`time` ,`date` ,`reply-from` ,`read-status` ,`sd` ,`rd`) VALUES ('', '$receiver_username', '$mail', '$sender_username', '$gmt_time', '$gmt_date', '$from_mail', '1', '', '')") or die("Couldnt Insert Data");

当输入小消息时没问题。否则显示无法插入数据。

所以请帮帮我。

最近我检查了它的 hapening bcz 这两个语法 ' 和 " 。现在两个如何插入它们我不想对文本进行编码

【问题讨论】:

  • 请分享您收到的确切错误消息 (mysql_error())。
  • 您的max_allowed_packet 设置是什么?
  • 什么是type small message 在调试代码或任何时候都不要吞下异常
  • 对不起,我刚刚运行了 mysql_error() 。它说这个问题是因为我在我的消息正文中使用了这个语法“”。所以现在如何解决它。
  • @BoltClock - 对不起,我听不懂。请解释

标签: php mysql insert


【解决方案1】:

varchar 字段的长度为 30005?这是不可能的,varchar 的最大长度是 255 个字符。尝试将邮件字段设为 TEXT 数据类型。

【讨论】:

  • 自 MySQL 5.0.3 起,它的最大长度已被推至 65,535。 64 整 KB 的 VARCHAR。然后你又是对的,它应该是TEXT 类型。
  • 感谢您的回复..让我试试
  • 我已将其更改为 TEXT 但仍然相同的错误它的 hapening bcz of ' 和 " . 如何修复这两种语法
【解决方案2】:

您需要在这里查看几件事。

1:您应该将数据库中的数据数据保存在文本列中,而不是 varchar 30005 2:查看PHP.ini文件中的所有内容 上传最大文件大小:50M 最大执行时间:无 内存限制:60M post_max_size:55M

3: mysql_error() 显示实际错误后可以提供更多帮助

【讨论】:

  • 我刚刚运行了 mysql_error() 。它说这个问题是因为我在我的消息正文中使用了这种语法“”。所以现在如何解决它。我不想对它们进行编码
  • 我无法理解您对信息量少的问题。请详细说明。对我来说,您似乎错误地引用了您的错误,但不能用提供的信息说任何话。
【解决方案3】:

您尝试插入的长文本中可能包含单引号 ' 或其他特殊字符。

为了解决这个问题,同时出于安全原因,您必须在尝试将文本插入表格之前对文本使用 mysql_escape_string。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多