Ошибка темы после обновления до WordPress 3.5

WordPressПосле обновления до WordPress 3.5 в логах сервера обнаружил следующее предупреждение PHP:

PHP Warning:  Missing argument 2 for wpdb::prepare(), called in /<...>/footer.php on line 29 and defined in /<...>/wp-includes/wp-db.php on line 990

На работоспособность блога это никак не влияло, но стало интересно разобраться в чем же дело.

А дело оказалось в изменении способа вызова функции $wpdb->prepare, точнее в способе передачи аргументов.

//Раньше было:
$wpdb->prepare( "SELECT * FROM some_table WHERE ID = $id AND name = $name" );

//Стало:
$wpdb->prepare( "SELECT * FROM some_table WHERE ID = %d AND name = %s", $id, $name );

%d используется для целых чисел (integer), %s — для строк (string), %f — для чисел с плавающей запятой (float).

То есть если раньше, например, числовая и строковая переменные ($id и $name) подставлялись сразу в SQL-запрос, то сейчас вместо них подставляем %d, %s, а сами переменные передаем как второй и третий аргумент функции.

Пожалуйста, оцените статью:
(всего оценок: 2, средняя: 5,00 из 5)