MYsql-Get-insert-id-sql
我想执行一个查询,将insert id插入其中一个列 我想知道如何获取插入id 我读了这个答案 但是它讨论了如何在查询之后获取insert id,我希望在执行查询时获取它 我试着做:MYsql-Get-insert-id-sql,mysql,sql,Mysql,Sql,我想执行一个查询,将insert id插入其中一个列 我想知道如何获取插入id 我读了这个答案 但是它讨论了如何在查询之后获取insert id,我希望在执行查询时获取它 我试着做: $stmt = $db->prepare("INSERT INTO `files` (`name`, `fname`) VALUES (?, LAST_INSERT_ID() + ?)") or die($db->error); $stmt->bind_param('ss', $n
$stmt = $db->prepare("INSERT INTO `files` (`name`, `fname`) VALUES (?, LAST_INSERT_ID() + ?)") or die($db->error);
$stmt->bind_param('ss', $name, $uniqid);
但是它的剂量工作,我总是得到56,还有持续剂量工作,我需要做什么?插入后保存它更简单、更好。在实际插入之前,您也不太可能获得正确的id 最可靠的方法是使用事务
- 启动交易
- 插入行
- 更新插入id
- 提交事务
- 在MySQL中,
+
不是字符串连接运算符。使用CONCAT(string1、string2等)
在wire协议中,mysql在每次查询后都会主动向客户端返回与上次插入ID()相同的值,大多数库都提供了访问最近返回值的方法。您没有提到,但看起来您正在php中使用mysqli,因此您正在寻找以下内容:
$last_id = $db->insert_id;
这看起来好像是要发送第二个查询,向数据库询问id,但事实并非如此。它将返回以前存储的值
为什么在一个查询中完成它如此重要?可以运行两个查询。我想不出有什么好的理由让你这么做