web-dev-qa-db-fra.com

Impossible de mettre à jour la ligne de la table de la base de données personnalisée

J'essaie de mettre à jour une ligne dans une table de base de données personnalisée avec $wpdb->update();. À mon avis, mon code est correct mais, pour une raison quelconque, la ligne de base de données ne se met pas à jour.

Est-ce que quelqu'un peut m'aider avec ça?

Je souhaite mettre à jour le statut d'une transaction dans la table wp_mollie_transactions où le transaction_id est égal au $order_id, que j'ai reçu de mon fournisseur de paiement.

(Bien sûr, j'ai fait $wpdb global dans ce fichier)

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

Avant d’essayer d’écrire dans la base de données, toujours validez les valeurs que vous mettez:

$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 );
}

À votre santé.

3
Paul G.