gpt4 book ai didi

mysql - 运行后直接从插入查询中获取数据

转载 作者:行者123 更新时间:2023-11-29 00:31:03 26 4
gpt4 key购买 nike

我有一个数据库,我使用 php 将项目插入其中。我想获取自动递增列的 ID,我阅读了手册,它说 mysql_query 返回资源变量而不是 bool 值,有没有办法从该资源中检索数据?

echo $query_ins = "INSERT INTO `house` VALUES ('' , '$city', '$street', 'num');
$res = mysql_query($query_ins);

第一个字段是我感兴趣的ID字段。
我尝试了 mysql_fetch_assoc 和 mysql_result 函数将 $res 转换为数组或直接检索数据,就像我对 SELECT 查询所做的那样,但没有成功。有什么建议吗?

最佳答案

参见手册:mysql_insert_id — Get the ID generated in the last query

这确实是您应该能够自己轻松找到的东西,而无需发布到 StackOverflow。查看您正在使用的任何 API 的文档对您有利。


回复你的评论:

SELECT * FROM house WHERE id = LAST_INSERT_ID()

假设您有一个自动递增的主键。

如果您在插入时生成不确定的主键值,例如使用 RAND() 或 UUID(),则实际上没有办法检索生成的值。您应该在执行 INSERT 之前生成该值,这样您就有了一个可用于查找该行的文字值。

SET @r := RAND();
INSERT INTO house (id, ...) VALUES (@r, ...);
SELECT * FROM house WHERE id = @r;

MD5 是确定性的,因此假设您有一个散列的原始 key 字符串,您应该能够使用该 MD5 表达式和原始字符串检索行。

INSERT INTO house (id, ...) VALUES (MD5('xyzzy'), ...);
SELECT * FROM house WHERE id = MD5('xyzzy');

关于mysql - 运行后直接从插入查询中获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16500669/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com