【问题标题】:Error in query while performing insert执行插入时查询出错
【发布时间】:2011-08-15 02:23:02
【问题描述】:

这是我的代码,我正在收到错误查询 mssg:

 $name = mysqli_real_escape_string($dbc, trim($_POST['fname']));
 $emailid = mysqli_real_escape_string($dbc, trim($_POST['emailid']));
 $city = mysqli_real_escape_string($dbc, trim($_POST['city']));
 $comment = mysqli_real_escape_string($dbc, trim($_POST['comment']));
 $query="INSERT INTO userdate('name','city','emailid','pledge','date') VALUES       ('$name','$city','$emailid','$comment',NOW())";
$result=mysqli_query($dbc, $query) or die('error query'); 

【问题讨论】:

  • 您看到的错误信息是什么? emailid的数据类型是什么?
  • @p.campbell 数据类型是 varchar 并且 msg 是错误查询,即运行查询。
  • 我在另一个用户的另一个问题中看到了同样的问题。一些讲师没有做好他们的工作
  • ('@name',.../etc 不执行字符串连接,据我所知,在 PHP 中
  • @ashish 发布错误消息时不要含糊其辞。这将类似于 “您在附近的 SQL 查询中有错误...”。请按照报告发布错误

标签: php mysql mysqli


【解决方案1】:

您的查询中有单引号而不是反引号。

$query="INSERT INTO userdate('name','city','emailid','pledge','date') VALUES ('$name','$city','$emailid','$comment',NOW())";

应该是:

$query="INSERT INTO userdate(`name`,`city`,`emailid`,`pledge`,`date`) VALUES ('$name','$city','$emailid','$comment',NOW())";

【讨论】:

  • 只有当列名是 MySQL 保留字时才需要反引号:dev.mysql.com/doc/refman/5.5/en/reserved-words.html
  • @ashish - 不。他们在字段名称周围不好。 OMG Ponies 是对的,不需要反引号,但是如果您坚持在字段名称(而不是值)周围有一些东西,那么您需要使用反引号。
猜你喜欢
  • 2015-07-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-14
相关资源
最近更新 更多