有几个不同的原因。
基本上,您的逻辑代码(即插件或主题)不需要了解数据库的任何信息。完全真正地
这个$wpdb
对象是全局数据库访问层,您应该将其用于所有数据库访问。如果需要运行自定义查询(假设您在某处有一个自定义表),那么应该使用$wpdb->prepare()
和$wpdb->query()
准备查询并从数据库中提取数据。
2。安全性很容易忘记清理查询并使您的站点受到某种SQL注入攻击。使用WordPress的内置卫生方法是防止这种情况的一种方法。这并不完美(您仍然可以编写一个非常糟糕的查询),但它确实有帮助。
3。性能WordPress API中内置的查询已经被几个开发人员倾注,并经过调整,以最小的内存占用运行并尽快返回。此外,其中一些API调用是自缓存的,因此您可以;“查询”;对于尚未更改且已在内存中的数据。与直接调用SQL相比,这是一个巨大的性能优势。
随着WordPress的每一个新版本,我们都会做出改变,使事情变得更快、更灵活。
4。灵活性和稳定性
数据库不是一个固定的结构。表架构可以
and will更改。在您自己的代码中对WordPress对象进行硬编码查询是一个缺乏灵活性的维护噩梦。当新版本的WP删除时,您将不得不再次重写您的查询。。。再次暴露潜在漏洞(#2)或对站点性能造成负面影响(#3)。
底线是,您仍然可以使用所有PHP。您可以直接连接到所需的任何数据库,并运行所需的任何查询。但是WordPress已经(在大多数情况下)为您完成了繁重的工作并抽象了这些调用。
使用的好处$wpdb
它已经存在,由几个开发人员维护,并且有很好的文档记录。你不必重新发明轮子。你知道,如果WordPress改变了,它也会随之改变。