$wpdb->prepare
不应该有任何重大区别。正如你在这里看到的(https://developer.wordpress.org/reference/classes/wpdb/prepare/#source), 这没什么用。它只负责正确的转义和格式化变量,因此可以安全地运行最终查询。
所以如果你问$wpdb->query( $wpdb->prepare( ... ) )
和$wpdb->query( <SAFE_SQL> )
, 那么没有-没有这样的区别,因为您必须准备<SAFE_SQL>
您可以自己查询,这样您就可以prepare
作用
至于你的观点:
我真的不认为它更难读。对我来说,这更容易,因为我清楚地看到什么类型的变量进入查询,以及在那里传递什么值。当然,格式化、命名等对于使代码可读性非常重要。
否,正在运行prepare
不应该有明显的区别。但是如果您有500个查询,那么您应该看看它们,因为它确实有很多查询。
为什么它不适合动态查询?WP中有很多动态查询,它们都是用prepare
方法看看吧WP_Query::get_posts
方法-它在WP中几乎到处都被调用,并基于许多参数和附加过滤器构造高度动态的查询。。。
是的,有。验证是一回事。逃跑是另一回事。卫生处理是另一个问题。这些步骤中的每一步对您的现场安全都很重要。