【问题标题】:Weird mySQL error when adding to a database添加到数据库时出现奇怪的 mySQL 错误
【发布时间】:2010-11-18 12:08:08
【问题描述】:

我使用了这个确切的代码,对另一个脚本中的值稍作修改,它工作得很好,但这次它给了我错误。这是行:

$result = mysql_query("INSERT INTO contacts (name, email, telephone, companyname, postcode, message, date) VALUES('" . $name . "', '" . $userEmail . "', '" . $telephone . "', '" . $companyName . "', '" . $message . "', '" . $date . "'") or die (mysql_error());

我试过用这个来回显所有变量:

<p>Name: <?php echo $name; ?>, <br />Email: <?php echo $userEmail; ?>, <br />Telephone: <?php echo $telephone; ?>, <br />Company name: <?php echo $companyName; ?>, <br />Message: <?php echo $message; ?>, <br />Date: <?php echo $date; ?>, <br /></p>

提交表单时显示它们都很好。但是,当我尝试将它们添加到数据库时,它会弹出并说:

您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 '' 附近使用正确的语法

我假设我遗漏了一些简单的东西,我在某处打错了字(尽管我重新输入了它以仔细检查它不是那个)。

这是我的数据库的设置方式:

有什么想法吗?


更新

我在查询中添加了缺少的),这消除了第一个错误,但现在我在提交时遇到了这个错误:

列计数与第 1 行的值计数不匹配


已修复

我错过了$postcode 变量。呸!

【问题讨论】:

  • 很好的错误描述。非常好!

标签: php mysql database forms


【解决方案1】:

您在查询结束时缺少) VALUES()

$result = mysql_query("INSERT INTO contacts (name, email, telephone, companyname, postcode, message, date) VALUES('" . $name . "', '" . $userEmail . "', '" . $telephone . "', '" . $companyName . "', '" . $message . "', '" . $date . "')") or die (mysql_error());

【讨论】:

  • 我更新了我的第一篇文章。我添加了 ) 符号,但我遇到了一个以前从未遇到过的新错误
  • @Bobby 我正要更新帖子说我已经修复了它。你是对的,这就是缺少的。感谢您的回复:-)
【解决方案2】:

您声明的字段比在 VALUES 中给出的字段多一个。这可能与列数有关。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-14
    • 2014-06-10
    • 1970-01-01
    • 1970-01-01
    • 2017-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多