小编典典

mysql_insert_id()返回0

mysql

我知道有很多标题相同的主题。但是大多数情况是将查询插入了错误的位置。但是我认为我说对了。所以问题是,即使将数据插入数据库,我仍然会得到0。有人知道我可能是错的答案吗?

这是我的代码:

mysql_query('SET NAMES utf8');
    $this->arr_kolommen = $arr_kolommen;
    $this->arr_waardes = $arr_waardes;
    $this->tabel = $tabel;
    $aantal = count($this->arr_kolommen);
    //$sql="INSERT INTO `tbl_photo_lijst_zoekcriteria` ( `PLZ_FOTO` , `PLZ_ZOEKCRITERIA`,`PLZ_CATEGORIE`)VALUES ('$foto', '$zoekje','$afdeling');";
    $insert = "INSERT INTO ".$this->tabel." ";
    $kolommen = "(";
    $waardes = " VALUES(";
    for($i=0;$i<$aantal;$i++)
    {
        $kolommen .=$this->arr_kolommen[$i].",";
        $waardes .="'".$this->arr_waardes[$i]."',";
    }
    $kolommen = substr($kolommen,0,-1).")";
    $waardes = substr($waardes,0,-1).")";
    $insert .=$kolommen.$waardes;   
    $result = mysql_query($insert,$this->db)  or die ($this->sendErrorToMail(str_replace("  ","",str_replace("\r\n","\n",$insert))."\n\n".str_replace(" ","",str_replace("\r\n","\n",mysql_error()))));
    $waarde = mysql_insert_id();

在此先多谢一遍,因为我几乎已经整整一天都为此而努力。(可能有点小而愚蠢)


阅读 319

收藏
2020-05-17

共1个答案

小编典典

根据手册
mysql_insert_id返回:

成功执行前一个查询为AUTO_INCREMENT列生成的ID; 如果前一个查询未生成AUTO_INCREMENT值
,则为0;如果未建立MySQL连接,则为FALSE。

由于它没有提供给您false并且编号不正确,因此表明查询的表未生成自动递增值。

我可以想到两种可能性:

  1. 您的表没有auto_increment字段
  2. 由于您没有提供指向mysql_insert_id()的链接,而是使用了带有mysql_query()的链接,因此它可能不是检索最后插入的ID时查询的正确表。

解:

  1. 确保它具有一个auto_increment字段
  2. 还提供链接: $waarde = mysql_insert_id($this->db);
2020-05-17