如何知道刚刚插入数据库那条数据的id

一、总结

一句话总结:这些常见功能各个框架里面都有,可以查看手册,thinkphp里面是$userId = Db::name('user')->getLastInsID();

1、在mysql和mysqli中如何选择?

用mysqli,php官方推荐

2、mysqli中如何查找到刚刚出入数据库的那条数据的id?

mysqli对象的indert_id属性

$mysqli->insert_id

二、PHP如何找到刚刚插入数据库的一条数据的ID?

$_title=$_POST['input_title'];
$_described=$_POST['described'];
mysql_query("insert into questionnaire (quesTitle,quesDescribe,createTime) values('$_title','$_described',now())");
header(index.php?quesid=刚刚插入的那个编号)

如上所述,我刚刚插入的一条数据,现在要立刻跳到该数据自动生成的id的页面去,怎么获取呢??

你看看 mysql_insert_id 这个函数. 获取上一步insert 插入成功的id, 不成功的时候是没有值的

mysql_insert_id() 函数返回上一步 INSERT 操作产生的 ID。 没事多自己百度一下,多看手册,别一有问题就到处发帖,这种只要一分钟就能知道的答案 ,你却要花十几分钟,甚至几个小时,甚至没人回答,我只能说一句,哥们 你这是何苦呢?

mysql_insert_id()将 MySQL 内部的 C API 函数 mysql_insert_id()的返回值转换成 long(PHP 中命名为 int)。如果 AUTO_INCREMENT 的列的类型是 BIGINT,则 mysql_insert_id()返回的值将不正确。可以在 SQL 查询中用 MySQL 内部的 SQL 函数 LAST_INSERT_ID()来替代。
例子一:]mysql_insert_id()]例子b]b]
<?php
mysql_connect("localhost", "mysql_user", "mysql_password") or
die("Could not connect: " . mysql_error());
mysql_select_db("mydb");
mysql_query("INSERT INTO mytable (product) values ('kossu')");
printf ("Last inserted record has id %d\n", mysql_insert_id());
?>

function mysql_insert_id ($link_identifier = null) {}/*** @deprecated 5.5* Get result data* @link http://php.net/manual/en/function.mysql-result.php* @param resource $result * @param int $row <p>* The row number from the result that's being retrieved. Row numbers * start at 0.* </p>* @param mixed $field [optional] <p>* The name or offset of the field being retrieved.* </p>* <p>* It can be the field's offset, the field's name, or the field's table * dot field name (tablename.fieldname). If the column name has been* aliased ('select foo as bar from...'), use the alias instead of the * column name. If undefined, the first field is retrieved.* </p>* @return string The contents of one cell from a MySQL result set on success, or * false on failure.* @since 4.0* @since 5.0*/

$mysqli->insert_id

 1 Example #1 $mysqli->insert_id example
 2
 3 面向对象风格
 4
 5 <?php
 6 $mysqli = new mysqli("localhost", "my_user", "my_password", "world");
 7
 8 /* check connection */
 9 if (mysqli_connect_errno()) {
10     printf("Connect failed: %s\n", mysqli_connect_error());
11     exit();
12 }
13
14 $mysqli->query("CREATE TABLE myCity LIKE City");
15
16 $query = "INSERT INTO myCity VALUES (NULL, 'Stuttgart', 'DEU', 'Stuttgart', 617000)";
17 $mysqli->query($query);
18
19 printf ("New Record has id %d.\n", $mysqli->insert_id);
20
21 /* drop table */
22 $mysqli->query("DROP TABLE myCity");
23
24 /* close connection */
25 $mysqli->close();
26 ?>

thinkphp 5.0
多去查看参考手册,里面肯定有

insert 方法添加数据成功返回添加成功的条数,insert 正常情况返回 1

添加数据后如果需要返回新增数据的自增主键,可以使用getLastInsID方法:

Db::name('user')->insert($data);
$userId = Db::name('user')->getLastInsID(); 

或者直接使用insertGetId方法新增数据并返回主键值:

Db::name('user')->insertGetId($data);

insertGetId 方法添加数据成功返回添加数据的自增主键

如何知道刚刚插入数据库那条数据的id相关推荐

  1. mysql 插入怎么知道id_如何知道刚刚插入数据库那条数据的id

    如何知道刚刚插入数据库那条数据的id 一.总结 一句话总结:这些常见功能各个框架里面都有,可以查看手册,thinkphp里面是$userId = Db::name('user')->getLas ...

  2. mybatis 做 insert操作的时候返回插入的那条数据的id

    著作权归作者所有. 商业转载请联系作者获得授权,非商业转载请注明出处. 作者:吃丸子的小鹿 链接:http://www.zhihu.com/question/20810321/answer/16843 ...

  3. 绝对干货,教你4分钟插入1000万条数据到mysql数据库表,快快进来

    我用到的数据库为,mysql数据库5.7版本的 1.首先自己准备好数据库表 其实我在插入1000万条数据的时候遇到了一些问题,现在先来解决他们,一开始我插入100万条数据时候报错,控制台的信息如下: ...

  4. 插入1000万条数据到mysql数据库表

    转自:https://www.cnblogs.com/fanwencong/p/5765136.html 我用到的数据库为,mysql数据库5.7版本的 1.首先自己准备好数据库表 其实我在插入100 ...

  5. mysql 1000万数据读取_插入1000万条数据到mysql数据库表

    转自:https://www.cnblogs.com/fanwencong/p/5765136.html 我用到的数据库为,mysql数据库5.7版本的 1.首先自己准备好数据库表 其实我在插入100 ...

  6. 力控数据写入mysQL_绝对干货,教你4分钟插入1000万条数据到mysql数据库表,快快进来...

    我用到的数据库为,mysql数据库5.7版本的 1.首先自己准备好数据库表 其实我在插入1000万条数据的时候遇到了一些问题,现在先来解决他们,一开始我插入100万条数据时候报错,控制台的信息如下: ...

  7. 教你急速快速批量插入1000万条数据到mysql数据库表面试题

    急速快速批量插入1000万条数据到mysql数据库表面试题 教你急速快速批量插入1000万条数据到mysql数据库表&面试题 我用到的数据库为,mysql数据库5.7版本的 1.首先自己准备好 ...

  8. 批量往mysql里面插入1000万条数据_绝对干货,教你4分钟插入1000万条数据到mysql数据库表,快快进来...

    我用到的数据库为,mysql数据库5.7版本的 1.首先自己准备好数据库表 其实我在插入1000万条数据的时候遇到了一些问题,现在先来解决他们,一开始我插入100万条数据时候报错,控制台的信息如下: ...

  9. 4分钟插入1000万条数据到mysql数据库表

    准备工作 我用到的数据库为,mysql数据库8.0版本的,使用的InnoDB存储引 创建测试表 CREATE TABLE `product` (`id` int NOT NULL AUTO_INCRE ...

最新文章

  1. Exchange服务器系列课程之四--管理Exchange收件人
  2. 关于DataGridView的数据源绑定字符串两个值得注意的问题
  3. android studio 以源码形式导入volley作为library,SDK的目录结构
  4. Origin null is not allowed by Access-Control-Allow-Origin 解决方法
  5. Qt工作笔记-视图/模型以及过滤代理模型的使用
  6. python 一维数组所有元素是否大于_利用Python进行数据分析(5) NumPy基础: ndarray索引和切片...
  7. linux php jsp网页,Linux上架设支持JSP+PHP的Web服务器
  8. python3 输出内容格式化
  9. js鼠标拖动图片拼图完成验证
  10. 全国所有机场 sql表 (截至2021.1.25)绝对最全!!
  11. u8文件服务器在哪设置,u8 设置文件服务器
  12. 只有360浏览器能打开别的都打不开
  13. 深入理解Java虚拟机之走进Java之Java的发展历程
  14. 中午午睡失眠,写了一些备忘
  15. 分享一个无需账号完全免费的 ChatGPT-4 的方法
  16. 俄勒冈大学计算机科学专业,俄勒冈大学计算机
  17. 3dAPI的一些介绍
  18. 百度百科计算机科学与技术,徐明伟(清华大学计算机科学与技术系教授)_百度百科...
  19. Tim Sweeney解释为什么Unreal Engine 4全面转向C++
  20. JavaEE大型分布式电商项目 上海淘淘商城

热门文章

  1. oracle em 双网卡,VirtualBox 双网卡配置
  2. python中torch模块下载,Python qtorch包_程序模块 - PyPI - Python中文网
  3. 你的4nm安卓旗舰芯片来了!骁龙8 Gen 1:支持8K HDR,功耗降30%,雷军:小米12首发...
  4. Arm官宣V9架构,用AI和安全对抗英特尔,最快今年年底用上
  5. 谷歌上线AI新玩法:随手乱涂鸦,一键变怪兽
  6. 刚刚,马斯克再次创造航天历史!SpaceX首次载人发射任务成功
  7. AI到底如何改变教育?好未来重金押注AI的背后逻辑
  8. java 打包的两种方式
  9. MRI原理谁都看得懂版
  10. 分享Silverlight/WPF/Windows Phone一周学习导读(07月18日-07月24日)