1

我在 php 中有以下 mysql 查询:

$results = $wpdb->get_results("SELECT * FROM $wpdb->postmeta WHERE meta_key = '_wp_attachment_metadata' AND meta_value LIKE '%details%'");

但是我希望通过更改LIKE查询部分来动态查询。代替:

LIKE '%details%'

我想在那里放一个变量:

LIKE '% $format %'

其中 $format 是一个字符串。

到目前为止,我尝试过的一切都失败了。

这样做的正确方法是什么?

4

5 回答 5

0

你已经得到了答案。我可以完全按照你的意愿去做。

$results = $wpdb->get_results("SELECT * FROM $wpdb->postmeta WHERE meta_key = '_wp_attachment_metadata' AND meta_value LIKE '%$details%'");

由于查询包含在双引号中,因此您无需转义任何内容。

于 2012-04-06T12:35:57.323 回答
0

您的字符串已经在双引号中,因此只需用花括号将变量括起来,您就可以开始使用了。

"SELECT * FROM $wpdb->postmeta WHERE meta_key = '_wp_attachment_metadata' AND meta_value LIKE '%{$format}%'"
于 2012-04-05T16:44:53.593 回答
0

尝试用大括号括起来:

LIKE '%{$format}%'
于 2012-04-05T16:40:18.377 回答
0

由于您使用双引号,您可以简单地执行以下操作:

$results = $wpdb->get_results("SELECT * FROM $wpdb->postmeta WHERE meta_key = '_wp_attachment_metadata' AND meta_value LIKE '%$format%'");

或者简单地连接字符串:

$results = $wpdb->get_results("SELECT * FROM $wpdb->postmeta WHERE meta_key = '_wp_attachment_metadata' AND meta_value LIKE '%" . $format . "%'");
于 2012-04-05T16:40:32.137 回答
0

在传递变量之前执行此操作

$format = '%' . $format . '%';
now simply put it in the query.

$results = $wpdb->get_results("SELECT * FROM $wpdb->postmeta WHERE meta_key = '_wp_attachment_metadata' AND meta_value LIKE '$format'");
于 2012-04-06T12:28:36.433 回答