Wordpress - 作为准备好的查询插入与 $wpdb->insert_id

问题描述 投票:0回答:1

我创建了一个简单的插件。它在后端有一个配置站点和一些用户站点的功能。我需要将一些用户选择保存到数据库中。一开始我使用了 $wpdb->insert() 和 $wpdb->update() 方法,但是在我阅读了 https://codex.wordpress.org/wpdb_Class#Protect_Queries_Against_SQL_Injection_Attacks 之后我想将其更改为

$wpdb->query($wpdb->prepare())
.

但是如何在没有新的选择查询的情况下获取刚刚插入的行的 id 呢?如果我使用 $wpdb->insert() 我在 $wpdb->insert_id 中有这个 id,但是如果我使用 $wpdb->query() 这个字段是空的...

php wordpress insert prepared-statement
1个回答
5
投票

使用 $wpdb->insert() 和 $wpdb->update() 您隐式使用 $wpdb->prepare() 函数及其保护。

例如 WordPress $wpdb->update() 函数的最后两行:

$sql = "UPDATE `$table` SET " . implode( ', ', $bits ) . ' WHERE ' . implode( ' AND ', $wheres );
return $this->query( $this->prepare( $sql, array_merge( array_values( $data ), array_values( $where ) ) ) );

因此,为了获取插入的 ID 并受到保护,我建议您使用 $wpdb->insert()。

© www.soinside.com 2019 - 2024. All rights reserved.