【发布时间】:2017-10-23 06:41:58
【问题描述】:
我一直在解决一个严重问题,该问题花费了太多时间。我知道这可能是一件小事,但我花了太多时间来创建一个简单的选择查询。这是我用来查看并告诉我出了什么问题的代码。
global $wpdb;
$querystr = "
SELECT $wpdb->posts.ID
FROM $wpdb->posts
WHERE $wpdb->posts.post_type = 'product'
AND $wpdb->posts.post_title = $tour_name
";
$productids = $wpdb->get_results($querystr, OBJECT);
foreach ($productids as $productid) {
echo $productid;
}
【问题讨论】:
-
您的问题没有正确描述“出错”的含义......所以我只能猜测这可能是旅游名称周围缺少引号。 (并且根据该值的来源,它也可能缺少任何针对 SQL 注入的保护。)
-
您告诉我们“出了什么问题”,我们会尽力告诉您如何解决。 ;-)
-
你真的需要解释你正在尝试做什么,正在发生什么以及你想要发生什么。否则,这里的任何人都无法帮助您解决问题。
-
@CBroe 感谢您的回复。这段代码与我在 wordpress 主题中的自定义函数文件中的其他 PHP 代码一起使用。但它没有结果。当我在网上搜索最安全的 SQL 语句时,我发现prepare 语句就是其中之一。你会为此提出一个更好的解决方案吗?
-
嗯,它很可能没有给出结果,因为查询有问题。 // 如何使用prepared statements,可以参考文档中的示例:codex.wordpress.org/Class_Reference/wpdb