$ wpdb-> get_var工作不适合我($wpdb->get_var isn't

2019-10-18 02:02发布

我工作的一个PayPal IPN处理程序,得到的IPN然后发送电子邮件。 现在我正在测试它试图访问我的数据库的“付费”列,以确保交易尚未以前被处理。 然而WPDB $似乎不正确返回的东西。 我能够使用WPDB $另一种形式的插入东西到数据库中,但我无法得到它回来了。 我试图get_var,get_row,和get_results并试图访问它们作为对象,阵列或在get_var的情况下的变量。

$paidstatus = $wpdb->get_var("SELECT paid FROM wp_bbbiller WHERE txn_id = '$txn_id'");

$subject = 'Test e-mail';
$message = "Thank you for your purchase $payer_email. Your total was $".$payment_amount."     for $duration hour 
    with $usercount users.  Previously paid: $paidstatus";

mail ($payer_email , $subject , $message);

眼下$ paidstatus显示为空白电子邮件。 我尝试使用的print_r($ paidstatus),当我有它设置与get_row,它显示了在电子邮件中的“1”,即使数据库值为0。

Answer 1:

是使用get_results作品! 我能够访问该变量像这样

$paidstatus = $wpdb->get_results("SELECT paid FROM wp_bbbiller WHERE txn_id = '$txn_id'");

foreach ($paidstatus as $status) {
    $subject = 'Test e-mail';
    $message = "Thank you for your purchase $payer_email. Your total was $".$payment_amount."          for $duration hour 
    with $usercount users.  Previously paid: ".$status->paid;

    mail ($payer_email , $subject , $message);

}

另外get_row也这样工作

    $paidstatus = $wpdb->get_row("SELECT paid FROM wp_bbbiller WHERE txn_id = '$txn_id'");

    $subject = 'Test e-mail';
    $message = "Thank you for your purchase $payer_email. Your total was $".$payment_amount." for $duration hour 
    with $usercount users.  Previously paid: ".$paidstatus->paid;

    mail ($payer_email , $subject , $message);


Answer 2:

我认为你需要使用get_results 。 然后用while循环从数据库中插入一个变量到电子邮件将自己的状态。

还什么你想让它在你的消息,你目前拥有的变量说$paidstatus 。 你不会想要一个0或1,像你的数据库是存储你会吗? 您需要创建一个if语句设置取决于其数据库中的状态变量的值。



文章来源: $wpdb->get_var isn't working for me