Запрос WordPress $wpdb->get_row() не будет работать с переменной, но работает с жестким кодом

Мой код правильный (я программирую 13 лет), но по какой-то причине, когда я использую переменную в запросе SELECT в предложении WHERE, я не получаю результата. Если я жестко закодирую это, это работает. Как это могло произойти? Удар мой ум...

$track = $wpdb->get_row($wpdb->prepare("SELECT tracking_id, order_id, outbound_tracking_number, return_tracking_numbers FROM wp_woocommerce_trackingnumbers WHERE order_id = %s", $o_id));

Спасибо!

1 ответ

Решение

Я думаю так должно быть (%s должно быть %d)

$track = $wpdb->get_row($wpdb->prepare("SELECT tracking_id, order_id, outbound_tracking_number, return_tracking_numbers FROM wp_woocommerce_trackingnumbers WHERE order_id = %d", $o_id));

%s для строк и %d для цифр и переменных $o_id звучит как целое число для меня.

Другие вопросы по тегам