我有一个名为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_results
和get_row
而没有运气。
答案 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"