2017-09-12 2 views
0

$ wpdb 메서드로 모든 postmeta (WordPress)를 가져올 비트 코드가 있지만 코드가 작동하지 않는 이유를 모르겠습니다.이 SQL 쿼리가 작동하지 않는 이유

global $wpdb; 

$meta_key = "'_bbp_vs_name_1', '_bbp_vs_name_2'"; 
$tags_query = "Po"; 
$query  = $wpdb->esc_like($tags_query); 
$value  = '%' . $query . '%'; 

$ajax_teams = $wpdb->get_results($wpdb->prepare(" 
    SELECT * 
    FROM $wpdb->postmeta 
    WHERE meta_key IN ($meta_key) 
    AND meta_value LIKE %s 
    ", 
    $meta_key, 
    $value 
)); 

print_r($ajax_teams); 

도와주세요.

근무 솔루션 :

$ajax_teams = $wpdb->get_results($wpdb->prepare(" 
    SELECT * 
    FROM $wpdb->postmeta 
    WHERE meta_key IN ($meta_key) 
    AND meta_value LIKE %s 
    ", 
    $value 
)); 
+4

:하지만 당신은

$ajax_teams = $wpdb->get_results($wpdb->prepare(" SELECT * FROM $wpdb->postmeta WHERE meta_key IN (%s) AND meta_value LIKE %s ", $meta_key, $value )); 

은 또한에 값을 변경 varible 방향 준 'WHERE meta_key IN (% s의)'테스트 –

+0

@ka_lin 및 – Opsional

+0

에 작동하지 수 당신은 실제로 무엇을 성취하려고하는지 설명해주십시오. 대안이있을 수 있습니다. postmeta에서 주요 열은 키와 값입니다. 키와 값을 사용하여 * 잡으려고합니다. –

답변

0

당신은 쿼리에 % s을 (를) 결합 할 필요가있다. 당신은 바인딩 잊어하는 것

$value  = "'%".$query."%'"; 
+0

작동하지 않습니다. ( – Opsional

+0

편집 된 답변 시도 @Opsional –

+0

tooo 작동하지 않음,이 문제를 해결하기 위해 업데이트 됨 :) 영감을 주셔서 감사합니다. – Opsional

관련 문제