【问题标题】:Insert Query is not inserting anything into the database插入查询没有向数据库中插入任何内容
【发布时间】:2013-12-28 13:40:16
【问题描述】:
mysql_query("INSERT INTO new_emails (from,subject,message,to,filename,fileurl) VALUES ('$id','$stripsubj','$content','$toids','$upload_name','$att')");

首先,我知道 mysql_query 已被贬值,我将在不久的将来某个时候重新编写整个脚本以适应这一点。

我的主要问题是这个查询当前没有向数据库中插入任何内容,我也没有最微弱的线索。不幸的是,我无权访问任何可以帮助我调试此问题的 phpMyAdmin 日志/SQL 日志。

我已经为此工作了一段时间,所以我希望我有一些非常愚蠢但未被注意到的东西。

“new_emails”里面的列是:id,from,savedtodb,subject,message,to,filename,fileurl

ID 是 auto_increment,savedtodb 是 CURRENT_TIMESTAMP,这就是我将它们排除在外的原因。

我做了什么特别愚蠢的事情,还是有更深层次的原因导致这不起作用?

提前干杯!

【问题讨论】:

  • 由于您的id 设置为AUTO_INCREMENT,因此您不应该使用'$id',
  • 抱歉,我应该提到 $id 实际上是用户的 ID,并且包含在保存会话数据的单独文件中。
  • mysql_error 是否返回任何内容?它通常会准确地告诉你哪里出了问题。
  • @user151000 - 如果电子邮件中包含撇号会怎样?
  • 戈登的答案是解决方案。您正在使用 2 个保留字。

标签: php mysql sql insert


【解决方案1】:

fromto 是保留字。你需要反引号:

INSERT INTO new_emails (`from`, subject, message, `to`, filename, fileurl)
    VALUES ('$id', '$stripsubj', '$content', '$toids', '$upload_name', '$att')

【讨论】:

  • 你这个美丽的人类。谢谢你的快速反应!现在绝对是我休息的时候了:p
  • @蒂姆。 . .不是说教,但您应该养成编写 SQL 语句的习惯,以提高可读性。将它们拆分为多行(即select/insert/updatefromwhere 的单独行)并在逗号后放置空格可能有助于您的代码更具可读性和更容易防止出现问题。
  • ...更不用说使用错误报告 ;-) 这会给 OP 一些洞察力。
  • @GordonLinoff 不要说教,但这不是我的问题,也不是我的疑问。我的意思是我正忙于从海报中获取更多信息,而您马上就发现了问题。不知道你为什么@签了我。
  • 我仍然感谢所有的 cmets。你永远不能停止学习,我们都会犯错误。为大家的帮助干杯:)
【解决方案2】:

有一些可能的错误:

1) 您可能没有使用 mysql_selct_db 或在声明连接时选择数据库。

2) 也许你没有转义单引号。 MySQL 讨厌单引号,如果在输入中找到任何单引号就会出错。

【讨论】:

  • 虽然这两个都成立,但查询中存在语法错误。
  • 感谢您的快速回复!似乎反引号 'from' 和 'to' 已经成功了!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-02-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多