Php MySQL INSERT查询不更新数据库

Php MySQL INSERT查询不更新数据库,php,mysql,Php,Mysql,出席人数表: id int(11)主键 users表中IGEN键的userID int(11) 日期 开始时间文本 结束时间文本 approv枚举默认值0 我的问题是: $sql = "INSERT INTO attent ". "(id,userID,date,start_time,end_time,approv) ". "VALUES ". "('NULL','$use

出席人数表:

id int(11)主键

users表中IGEN键的userID int(11)

日期

开始时间文本

结束时间文本

approv枚举默认值0

我的问题是:

             $sql = "INSERT INTO attent ".
                   "(id,userID,date,start_time,end_time,approv) ".
               "VALUES ".
               "('NULL','$userid','$date','$start_time','$end_time','NULL')";

              $query = mysqli_query($db,$sql);

我得到了帮助与dB通信的config.php文件。我以前做过一些插入查询,所有的都很好。我不明白我的错误在哪里。

像这样尝试使用回勾,因为日期在mysql中是保留字

 $sql = "INSERT INTO `attent` ".
               "(`id`,`userID`,`date`,`start_time`,`end_time`,`approv`) ".
           "VALUES ".
           "('','$userid','$date','$start_time','$end_time','')";

尝试这样使用back tick,因为date在mysql中是保留字

 $sql = "INSERT INTO `attent` ".
               "(`id`,`userID`,`date`,`start_time`,`end_time`,`approv`) ".
           "VALUES ".
           "('','$userid','$date','$start_time','$end_time','')";

请按以下方式编写您的查询:-

"INSERT INTO attent(`id`,`userID`,`date`,`start_time`,`end_time`,`approv`)
VALUES(NULL,'$userid','$date','$start_time','$end_time',NULL)"

请按以下方式编写您的查询:-

"INSERT INTO attent(`id`,`userID`,`date`,`start_time`,`end_time`,`approv`)
VALUES(NULL,'$userid','$date','$start_time','$end_time',NULL)"

如果您尝试通过phpMyAdmin等手动输入此类查询,则更容易理解发生了什么

我不知道您的表结构,但尝试跳过
id
属性,因为它通常是自动递增的。您始终可以跳过未设置为
非空
的字段

就像这样:

$sql = "INSERT INTO `attent` ".
       "(`userID`,`date`,`start_time`,`end_time`,`approv`) ".
       "VALUES ".
       "('$userid','$date','$start_time','$end_time','')";

如果您尝试通过phpMyAdmin等手动输入此类查询,则更容易理解发生了什么

我不知道您的表结构,但尝试跳过
id
属性,因为它通常是自动递增的。您始终可以跳过未设置为
非空
的字段

就像这样:

$sql = "INSERT INTO `attent` ".
       "(`userID`,`date`,`start_time`,`end_time`,`approv`) ".
       "VALUES ".
       "('$userid','$date','$start_time','$end_time','')";


无法在id int(11)中添加空字符串,也无法在TinyInt中添加空字符串删除空值周围的引号HP通常会告诉您如果您让它这样做会有什么问题:如果您的id列是自动递增的。。你根本不需要传递它为什么你要在这里输入字符串?不能在id int(11)中添加NULL字符串,也不能在tinyintre中添加NULL字符串移动NULL值周围的引号如果你让它这样做,HP通常会告诉你出了什么问题:如果你的id列是自动递增的。。您根本不需要传递它,为什么在这里使用concat字符串?Date是mysql中的关键字,但不是保留的。检查日期后是否没有(R)删除id,并按上述方法执行,但仍不起作用:(@surfer,用blank
''
代替NULL@Saty,谢谢你的评论,现在我看到了,但是是的,回勾也是一个很好的做法。好的,伙计们,我只是重新启动了我的本地服务器,并更新了查询。而且,即使他自动递增,我在id字段中插入空值也没有问题。有人能解释一下正确的方法吗?想说声谢谢吗感谢大家的帮助和评论:)Date是mysql中的关键字,但不是保留的。检查Date之后是否没有(R)删除id,并按上述方法执行,但仍然不起作用:(@surfer,用blank
''
代替NULL@Saty,谢谢你的评论,现在我看到了,但是是的,回勾也是一个很好的做法。好的,伙计们,我只是重新启动了我的本地服务器,并更新了查询。而且,即使他自动递增,我在id字段中插入空值也没有问题。有人能解释一下正确的方法吗?想说声谢谢吗感谢大家的帮助和意见:)您不能将空字符串添加到int属性。@Saty:我的错误日期是一个关键字,但不是保留的。@abhishekGurjar:可以。试试看。如果id是PK,则不可能,如果不是,则可能。您不能将空字符串添加到int属性。@Saty:我的错误日期是一个关键字,但不是保留的。@abhishekGurjar:可以。如果id是PK,则试试看那么这是不可能的,但如果不是,那么它是可能的。