我在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是一个字符串。
到目前为止,我所尝试的一切都失败了。
这样做的正确方法是什么?
答案 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%'");
由于查询是用双引号括起来的,所以你不需要转义任何内容。