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

中かっこで囲んでみてください:

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

あなたはすでに答えを得ています。私はあなたが望むようにそれを行うことができます。

$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

変数を渡す前にこれを行います

$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 に答える