web-dev-qa-db-ja.com

カスタムデータベーステーブルの行を更新できません

カスタムデータベーステーブルの行を$wpdb->update();で更新しようとしています。私の意見では私のコードは正しいのですが、何らかの理由で私のデータベースの行が更新されません。

誰かが私をこれで手伝ってくれる?

Wp_mollie_transactionsテーブルの取引のステータスを更新したいのですが、ここでtransaction_idは私の支払いプロバイダから受け取った$order_idです。

(もちろん、このファイルで$wpdbをグローバルにしました)

// Update database
    $wpdb->update( $wpdb->prefix . 'mollie_transactions',
        array(
            'status'    => $payment->status
        ),
        array( 
            'transaction_id'    => $order_id
        )
    );
1
Robbert

データベースに書き込もうとする前に、常にで値を検証します。

$fValid = true;
if ( !isset( $payment->status ) ) {
    echo 'Error: Payment status is not set';
    $fValid = false;
}
if ( !isset( $order_id )  ) {
    echo 'Error: Order ID is not set';
    $fValid = false;
}

if ( $fValid ) {
    // Update database
    $fSuccess = $wpdb->update( $wpdb->prefix . 'mollie_transactions',
        array(
            'status'            => $payment->status
        ),
        array( 
            'transaction_id'    => $order_id
        )
    );

    echo sprintf( 'Update %s where Payment Status was %s and Transaction ID was %s', $fSuccess? 'Succeeded':'Failed', $payment->status, $order_id );
}

乾杯。

3
Paul G.