避免“不鼓励使用直接数据库调用”

时间:2015-03-21 作者:Sam Wilson

WordPress-Coding-Standards 报告“不鼓励使用直接数据库调用。”

它在抱怨我使用$wpdb->insert() 在插件中。不建议这样做吗?将数据插入插件数据库表的正确方法是什么?

或者我可以忽略这个错误吗?在这种情况下,是否有某种系统将其标记为已审核且不再标记?

1 个回复
最合适的回答,由SO网友:Adam 整理而成

使用$wpdb->insert 和或相关方法来修改任何默认WordPress表中的数据posts, postmeta, user, usermeta 不鼓励使用etc,因为已经存在用于修改这些表中数据的函数。

例如

数据库查询

避免直接接触数据库。如果有一个已定义的函数可以获取所需的数据,请使用它。数据库抽象(使用函数而不是查询)有助于保持代码向前兼容,并且在结果缓存在内存中的情况下,它可以快很多倍。

https://make.wordpress.org/core/handbook/best-practices/coding-standards/php/#database-queries

然而it is acceptable 要使用wpdb 在自定义表上初始化,对于这些自定义表,不存在用于所需用途的函数包装器。

您可以尝试在查询的行中添加注释:

$wpdb->insert() //db call ok
$wpdb->insert() //db call ok; no-cache ok

结束

相关推荐

$wpdb->Get_Results内存泄漏

我开发了一个wordpress插件,可以读取大型自定义xml文件,并将信息作为自定义帖子类型和大量帖子元信息导入。所以我调用了很多数据库事务。插件在一个POST\'ed进程内运行几分钟,然后在内存不足(250 MB)的情况下中止。将问题跟踪到最低限度我有一个显示问题的最低限度的示例。这个例子泄漏了大约18 kbyte的数据,这在插件运行时是一个很大的总结。查询检查是否存在具有给定标题的帖子($title)echo \"<p>memory: \" . memory_get_usage() . \