Вопрос:

Я не могу получить данные из базы данных из-за предоставленного динамического значения

php wordpress woocommerce

10 просмотра

1 ответ

3 Репутация автора

Сайт на WordPress. Для печати забронированного билета в формате PDF я использую плагины: woocommerce и woocommerce-pdf-invoices-packaging-slips. Перед печатью в шаблон письма мне нужно добавить некоторые данные из таблицы базы данных. Плагин имеет переменную $this->order_id- он содержит номер заказа.

Я попытался сделать такой запрос к базе данных:

global $wpdb;
$wt_order_ids = $wpdb->query($wpdb->prepare("SELECT * FROM {$wpdb->prefix}my_table WHERE order_id = %d", $this->order_id));

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

$wt_order_ids = $wpdb->query($wpdb->prepare("SELECT * FROM {$wpdb->prefix}my_table WHERE order_id = 777"));

те. вместо $ this-> order_id зарегистрируйте номер заказа уже в таблице, например, 777, тогда запрос работает как положено, и я получаю необходимые данные.

Я подумал, может быть, в тот момент, когда я пытаюсь получить доступ к базе данных, фактический номер заказа еще не в базе данных. Тогда почему я могу напечатать $ this-> order_id, используя echo или print_r, но не могу использовать его при доступе к базе данных?

Пожалуйста, помогите мне решить эту проблему. Мне действительно нужно использовать $ this-> order_id

Автор: VladSiy Источник Размещён: 11.08.2019 06:34

Ответы (1)


0 плюса

459 Репутация автора

Вы можете полностью создать строку запроса и затем передать ее, $wpdb->query()например, так:

global $wpdb;
$query = "SELECT * FROM {$wpdb->prefix}my_table WHERE order_id = {$this->order_id}";
$wt_order_ids = $wpdb->query($query);
Автор: mshomali Размещён: 11.08.2019 07:55
Вопросы из категории :
32x32