php mysql query - 查询中变量的输出值

时间:2012-04-05 16:36:44

标签: php mysql

我在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是一个字符串。

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

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

5 个答案:

答案 0 :(得分:0)

尝试用大括号括起来:

LIKE '%{$format}%'

答案 1 :(得分: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 . "%'");

答案 2 :(得分:0)

你的字符串已经是双引号,所以只需用大括号包围你的变量,你就应该好了。

"SELECT * FROM $wpdb->postmeta WHERE meta_key = '_wp_attachment_metadata' AND meta_value LIKE '%{$format}%'"

答案 3 :(得分: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'");

答案 4 :(得分:0)

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

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

由于查询是用双引号括起来的,所以你不需要转义任何内容。