본문 바로가기
MySql

MySQL wpdb에서 IN ()을 사용하려고 할 때 문제

by 베이스 공부 2021. 2. 9.
반응형

나는 이것을 가지고있다:

$villes = '"paris","fes","rabat"';
$sql    = 'SELECT distinct telecopie FROM `comptage_fax` WHERE `ville` IN(%s)';
$query  = $wpdb->prepare($sql, $villes);

echo $ query; 를 수행하면 다음과 같은 결과가 나타납니다.

SELECT distinct telecopie FROM `comptage_fax` WHERE `ville` IN('\"CHAPELLE VIVIERS \",\"LE MANS \",\"QUEND\"')

내가 가진 문제는 $ wpdb IN ( '...') '를 추가한다는 것입니다.

누군가 도울 수 있습니까, 감사합니다

 

해결 방법

 

이 코드를 시도하십시오 (해결됨).

// Create an array of the values to use in the list
$villes = array("paris", "fes", "rabat");    

// Generate the SQL statement.
// The number of %s items is based on the length of the $villes array
$sql = "
  SELECT DISTINCT telecopie
  FROM `comptage_fax`
  WHERE `ville` IN(".implode(', ', array_fill(0, count($villes), '%s')).")
";

// Call $wpdb->prepare passing the values of the array as separate arguments
$query = call_user_func_array(array($wpdb, 'prepare'), array_merge(array($sql), $villes));

echo $query;





 

참조 페이지 https://stackoverflow.com/questions/10634058

 

 

반응형

댓글