我正在使用LIKE子句创建简单的搜索脚本。 下面是使用php的LIKE子句的简单查询。
$rows = mysql_query("select * from description where tags like '%{$keyword}%'");
以上查询工作成功。但LIKE条款不适用于$wpdb->prepare()
。以下是
$rows = $wpdb->get_results($wpdb->prepare("select * from description where tags like '%{%s}%'",$keyword));
我在这里缺少什么?
答案 0 :(得分:0)
我通常使用sprintf,并做类似的事情。
global $wpdb;
$querystr = sprintf(
"SELECT * FROM description WHERE tags LIKE '%%%$s%%'"
mysql_real_escape_string($s)
)
$rows = $wpdb->get_results($querystr, OBJECT);
echo "</pre>"; print_r($rows); echo "</pre>";
答案 1 :(得分:0)
您需要转义%字符
答案 2 :(得分:0)
试试这个:
$param = "%{$keyword}%";
$stmt = $db->prepare("SELECT * FROM description WHERE tags LIKE ?");
$stmt->bind_param("s", $param);
$stmt->execute();
$result = $stmt->get_result();
while ($row = $result->fetch_array(MYSQLI_NUM)) {
foreach ($row as $r) {
print "$r ";
}
print "\n";
}