为了账号安全,请及时绑定邮箱和手机立即绑定

mysqli_insert_id()和mysql_insert_id()的区别

老师是使用的mysql_insert_id(),括号里面不用填参数,但是我们是用的mysqli_insert_id(),括号里面必须要填一个链接数据库的返回值,但是一但填了,就意味着数据库是重新链接了,所以无论怎么样都返回的是0,不知道有没有同学和我遇到的是一样的问题,麻烦老师解决下,谢谢

正在回答

5 回答

mysqli=mysql+

mysqli是php某个版本之后建议用来连接mysql数据库的方法,之前的mysql已经启用了。用mysqli将更加安全。

可以参考链接:

mysqli

0 回复 有任何疑惑可以回复我~

老师封装好的insert()函数,改成mysqli之后。

function insert($table,$array){
    $link = connect();
    $keys=join(',', array_keys($array));
    $vals="'".join("','", array_values($array))."'";
    $sql = "INSERT INTO {$table}($keys) VALUES({$vals})";
    mysqli_query($link,$sql);
    return mysqli_insert_id($link);
}

返回值就是该次插入操作影响的行的ID值。直接用一个变量接收返回值,再打印出来,可以发现并不是0的。

1 回复 有任何疑惑可以回复我~
#1

陈伟鸿

确定吗?这里的$link = connect()是调用上面的封装的connect对吧,按你的做法,我报了expects parameter 1 to be mysqli, 这个错误,
2018-09-19 回复 有任何疑惑可以回复我~
#2

陈伟鸿

没问题了,是我搞错了,,sorry
2018-09-19 回复 有任何疑惑可以回复我~

我也出现了这个问题,后来发现php新版已经不支持mysql_insert_id()了,我全部替换成mysqli_insert_id()才好使,不过就是需要传递参数,你弄清该传什么参数就行了,不知道的可以百度搜一下!

0 回复 有任何疑惑可以回复我~

使用全局变量就可以

0 回复 有任何疑惑可以回复我~

一样,所以我把后一个查询ID的命令给删了

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
手把手教你实现电商网站后台开发
  • 参与学习       117284    人
  • 解答问题       1999    个

手把手教你用PHP搭建电子商务平台,由浅入深教你搭建电商系统

进入课程

mysqli_insert_id()和mysql_insert_id()的区别

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信