Почему этот пользовательский запрос к таблице $ wpdb не работает? - PullRequest
0 голосов
/ 14 января 2012

У меня есть пользовательская таблица wp_purchases, к которой добавляется IPN Paypal, она имеет столбцы post_id, purchase_id, имя пользователя, адрес электронной почты и изменения:

$user = $_POST['username'];
$post_id = $post->ID;
global $wpdb;
$wpdb->purchases = $table_prefix . 'purchases';
$result = $wpdb->query("SELECT * FROM $wpdb->purchases WHERE username = $user AND post_id = $post_id");
if ($result) {...

Я просто пытаюсь проверить, есть ли покупка под определенным именем пользователя на одной странице .php темы, а затем выполнить операцию, не связанную с $result. Это не будет работать, в любом случае, я пытаюсь получить нулевое значение. Это как-то связано с использованием $wpdb->purchases или без включения определенного файла или чего-то еще? Я также попробовал это с get_results и get_row без удачи.

Ответы [ 4 ]

1 голос
/ 09 марта 2013

Я знаю, что уже слишком поздно для этого ответа, но я все равно опубликую его ради других, у которых также есть подобные проблемы.

Вы упомянули, что запрос по-прежнему ничего не возвращает даже после удаления части WHERE, пытались ли вы отобразить переменную $ wpdb-> покупок? Он может просто возвратить вам строку «покупки» вместо «wp_purchases» (при условии, что ваш префикс таблицы - «wp_»). Попробуйте использовать $ wpdb-> prefix вместо $ table_prefix или $ wpdb-> base_prefix , если вы получили мультисайт.

$wpdb->purchases = $wpdb->prefix . 'purchases';
1 голос
/ 29 января 2012

Я сдался и просто использовал

$result = $wpdb->query("SELECT * FROM wp_purchases WHERE username = $user AND post_id = $post_id");

, поскольку он предназначен для одного сайта и не нуждается в префиксе таблицы, он всегда будет wp_

1 голос
/ 14 января 2012

Попробуйте это:

$result = $wpdb->query("SELECT * FROM `".$wpdb->purchases."` WHERE username = '$user' AND post_id = '$post_id';");
0 голосов
/ 14 января 2012

Какой тип username? Я предполагаю, что он хранит строковые данные. Поэтому переменная $user должна быть заключена в кавычки:

"SELECT * FROM $wpdb->purchases WHERE username = \"$user\" AND post_id = $post_id"

...