我想要一个匹配页面标题的mysql查询。我不确定有没有更好的方法来完成这项任务,但我被卡住了。
这是我的基本测试代码。
<?php
$page_title = wp_title(\'\');
echo $page_title;
$test = $wpdb->get_results("SELECT * FROM $wpdb->park_data WHERE park_name = \'"$page_title"\' ") or die(mysql_error());
$row = mysql_fetch_array($test);
echo $row[\'park_name\'];
?>
我一直在查询时出错。如果我只回显wp\\U标题(“”);,没问题,指纹。
有人能看出我做错了什么吗?
最合适的回答,由SO网友:Ben HartLenn 整理而成
我认为,如果在查询中的php变量前后添加几个句点,去掉mysql\\u fetch\\u array的使用,并使用get\\u row(),应该会更好。下面是我如何从您的自定义表中获取公园:
<?php
$page_title = wp_title(\'\');
$park = $wpdb->get_row("SELECT * FROM $wpdb->park_data WHERE park_name=\'".$page_title."\'");
if($park)
{
print_r($park); // because other than it being an object, I\'m not exactly sure what\'s returned.
}
?>
另外,请记住,mysql查询假定wp_title()返回的页面标题格式与数据库中存储的park_名称完全相同。您可能需要格式化wp\\u title(),使其与表数据匹配。
看起来您只想返回一个公园,所以我使用了get\\u row():http://codex.wordpress.org/Class_Reference/wpdb#SELECT_a_Row