Php LIKE子句在$wpdb中不起作用->;wordpress中的prepare()

Php LIKE子句在$wpdb中不起作用->;wordpress中的prepare(),php,mysql,wordpress,Php,Mysql,Wordpress,我正在使用LIKE子句创建简单的搜索脚本。 下面是使用php的简单查询with LIKE子句 $rows = mysql_query("select * from description where tags like '%{$keyword}%'"); 上述查询工作成功。但是LIKE子句不使用$wpdb->prepare()。下面是代码 $rows = $wpdb->get_results($wpdb->prepare("select * from description whe

我正在使用LIKE子句创建简单的搜索脚本。 下面是使用php的简单查询with 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));

我缺少什么?

我通常使用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>";
global$wpdb;
$querystr=sprintf(
“从描述中选择*,其中包含“%%$s%%”等标记”
mysql\u real\u escape\u字符串($s)
)
$rows=$wpdb->get_结果($querystr,OBJECT);
回声“;打印(行);回声“;

我通常使用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>";
global$wpdb;
$querystr=sprintf(
“从描述中选择*,其中包含“%%$s%%”等标记”
mysql\u real\u escape\u字符串($s)
)
$rows=$wpdb->get_结果($querystr,OBJECT);
回声“;打印(行);回声“;

您需要转义%character,

您需要转义%character,

尝试以下操作:

$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";
}
试试这个:

$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";
}

谢谢@galfaro…但它不起作用。还有其他想法吗?谢谢@galfaro…但它不起作用。还有其他想法吗?谢谢@payer…但它显示了如下2个错误
警告:wpdb::prepare()缺少参数2,在第40行的C:\xampp\htdocs\employer\wp content\themes\i-craft\resumes\pages\search.php中调用,并在第1210行的C:\xampp\htdocs\employer\wp includes\wp-db.php中定义在C:\xampp\htdocs\employer\wp content\themes\i-craft\resumes\u pages\search.php中的非对象上,第42行
试试这个:$wpdb->prepare(“从
{$wpdb->base_prefix}my_表中选择列_1
其中列_2类似于%s;”,“%。$wpdb->esc_类似于($number_-to_-put_-in_-LIKE)。”;谢谢@payer…但它显示了如下2个错误
警告:wpdb::prepare()缺少参数2,在第40行的C:\xampp\htdocs\employer\wp content\themes\i-craft\resumes\pages\search.php中调用,并在第1210行的C:\xampp\htdocs\employer\wp includes\wp-db.php中定义在C:\xampp\htdocs\employer\wp content\themes\i-craft\resumes\u pages\search.php中的非对象上,第42行
试试这个:$wpdb->prepare(“从
{$wpdb->base_prefix}my_表中选择列_1
其中列_2类似于%s;”,“%。$wpdb->esc_类似于($number_-to_-put_-in_-LIKE)。”;你好你设法解决了这个问题吗?我有sameHi。你设法解决了这个问题吗?我有同样的