WordPress PHP Myql как запрос не работает - PullRequest
2 голосов
/ 27 февраля 2011
$db_item =  $wpdb->get_results($wpdb->prepare( "SELECT * FROM wp_wowhead_items WHERE name LIKE %s", "%". "Hello" . "%") );

Это выше работает ... Но ниже не работает!

$text = "Hello";
$db_item =  $wpdb->get_results($wpdb->prepare( "SELECT * FROM wp_wowhead_items WHERE name LIKE %s", "%". $text . "%") );

Где мне не хватает синтаксиса?Я перепробовал почти все комбинации с кавычками, косой чертой, побегами ...

Ответы [ 3 ]

3 голосов
/ 21 июля 2012

Escape с двойным %%

При использовании get_results () в Wordpress все символы% в строковых литералах SQL, включая символы подстановки LIKE, должны быть экранированы в двойном% как %%

$ db_item = $ wpdb-> get_results ($ wpdb-> prepare (

)
"SELECT * FROM wp_wowhead_items WHERE name LIKE '%%$text%%'"

));

2 голосов
/ 27 февраля 2011

Заверните в кавычки:

$db_item =  $wpdb->get_results($wpdb->prepare(
            "SELECT * FROM wp_wowhead_items WHERE name LIKE %s", "'%". $text . "%'"));
0 голосов
/ 27 февраля 2011

Попробуйте это:

$db_item =  $wpdb->get_results($wpdb->prepare(
    "SELECT * FROM wp_wowhead_items WHERE name LIKE %s", '%$text%'"
));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...