mysql_insert_id 为什么会返回空值

如果同时打开了一个以上的数据库资源,如果其中一个资源,没有使用insert语句或没有auto_increment类型的数据,或返回结果恰好为空值时,会导致mysql_insert_id()返回空值。

如以下写法,注:new Db()会产生一个数据库链接;

 $db = new Db();
 if(self::isOk($id)){
    $sql = "insert into user_clect(videoid,favid,cdate) values ('$videoid',$favid,$cdate)";
    $dbid=$db->insert($sql);
}

代码中的方法isOk有个数据库检索操作,返回0或者1,这就会导致$dbid返回值为空。

解决办法:

 if(self::isOk($id)){
    $db = new Db();
    $sql = "insert into user_clect(videoid,favid,cdate) values ('$videoid',$favid,$cdate)";
    $dbid=$db->insert($sql);
}
posted @ 2013-06-20 10:28  王 庆  阅读(788)  评论(0编辑  收藏  举报