使用安全吗$wpdb->insert_id;
查找id
上次更新的row id
更新之后?例如:
$sql = $wpdb->insert($table_name, $arrayWithDataToInsert, array(\'%s\',\'%s\'));
$results[\'new_created_id\'] = $wpdb->insert_id;
或者,我是否有可能捕捉到紧跟在我之后插入的另一行的id?
谢谢
最合适的回答,由SO网友:Denis de Bernardy 整理而成
在更高的层次上,确实没有任何方法可以知道php/db连接器是否会通过依赖$wpdb->insert\\u id返回正确的id。唯一可以百分之百确定的方法是添加一个您知道是唯一的密钥(并按此编制索引);然后,您可以通过针对该唯一键查询表来检索id。
我写这篇文章的原因是,如果一个触发器函数从数据库中添加行,或者更重要的是,如果一个插件以这样一种方式在wpdb中挂钩,它会在你正在做的插入(例如用于日志记录)旁边乱放插入,那么你就不安全了。
考虑到这一点,WP社区(以及其他大多数社区)中几乎没有人对DB能做什么有一点概念,并将其视为一堆巨大的数组。因此,在实践中,您可以非常安全地依赖它。