$wpdb->prepare()
使用与php相同的语法进行格式化printf()
. 所以你需要... WHERE post_id IN (%d,%d,%d) ...
这将适合三个ID。但是如果我们得到的身份证多于或少于三个呢?我们将使用php工具创建所需的格式字符串(假设$ids
是一个ID为的数组):
计算ID
count( $ids )
为$ids中的每个ID创建一个带\'\'%1!\'\'的字符串
str_repeat( \'%d,\', count( $ids ) )
现在我们有一个字符串
%d,%d,%d,
. 结尾有一个逗号。让我们移除它
$ids_format_string = rtrim( str_repeat( \'%d,\', count( $ids ) ), \',\' );
并以这种方式使用
\'... WHERE post_id IN (\' . $ids_format_string . \') ...\'