为什么这个自定义表$ wpdb查询不起作用?

时间:2012-01-14 18:44:28

标签: mysql wordpress wpdb

我有一个名为wp_purchases的自定义表,由Paypal IPN添加,它包含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无关的操作。 它不会工作,我尝试它的任何方式都会出现null。是否与使用$wpdb->purchases或不包含某个文件或其他内容有关?我也尝试过使用get_resultsget_row而没有运气。

4 个答案:

答案 0 :(得分:1)

试试这个:

$result = $wpdb->query("SELECT * FROM `".$wpdb->purchases."` WHERE username = '$user' AND post_id = '$post_id';");

答案 1 :(得分:1)

我放弃了,只是用了

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

因为它是针对单个网站而且并不真正需要表格前缀,所以它始终是wp _

答案 2 :(得分:1)

我知道这个答案为时已晚,但我仍然会为其他也有类似问题的人发帖。

您提到即使删除WHERE部分后查询仍然没有返回任何内容,您是否尝试回显$ wpdb->购买变量?它可能只返回一个字符串“purchase”而不是“wp_purchases”(假设你的表前缀是“wp_”)。如果您有多站点,请尝试使用 $ wpdb->前缀而不是 $ table_prefix ,或 $ wpdb-> base_prefix

$wpdb->purchases = $wpdb->prefix . 'purchases';

答案 3 :(得分:0)

什么类型的username?我假设它存储字符串数据。因此必须引用变量$user

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