Come utilizzare $wpdb per eliminare record in una tabella personalizzata

11 gen 2017, 20:53:03
Visualizzazioni: 84K
Voti: 10

Ho difficoltà a trovare una buona risorsa sull'utilizzo della funzione $wpdb.

Sto cercando di eliminare una riga da una tabella personalizzata chiamata: eLearning_progress

$removefromdb = $wpdb->query("DELETE FROM eLearning_progress WHERE ID = '$user_id' AND module_id = '$singlecomparearrays_remove'" );

La riga che vorrei eliminare ha l'ID di '$user_id' e il 'module_id' di '$singlecomparearrays_remove'.

Ho anche provato:

$removefromdb = $wpdb->query( "DELETE FROM eLearning_progress WHERE ID = ($user_id) AND module_id = ($singlecomparearrays_remove)" );

e poi:

$removefromdb = $wpdb->query($wpdb->prepare("DELETE FROM eLearning_progress WHERE ID = %s AND module_id = %s", $user_id, $singlecomparearrays_remove));

Per favore, cercate di non sospirare troppo forte vedendo i miei tentativi, ma non riesco a trovare una buona guida sull'utilizzo del comando DELETE con le variabili. Ogni aiuto è molto apprezzato.

Cordiali saluti, Alex

2
Commenti

Hai letto il codex riguardo delete()?

bueltge bueltge
11 gen 2017 21:55:00

Sì, ma non lo capisco abbastanza per farlo funzionare con le mie variabili. Saresti in grado di fornirmi un esempio?

Alex Green Alex Green
12 gen 2017 11:36:29
Tutte le risposte alla domanda 4
0
34

La migliore soluzione WP API per questo obiettivo è utilizzare la funzione delete() per rimuovere una riga.

Un piccolo esempio, per eliminare la riga con ID nella tabella personalizzata eLearning_progress.

$id = 0815;
$table = 'eLearning_progress';
$wpdb->delete( $table, array( 'id' => $id ) );

Ma non riesco a vedere quale riga verrà eliminata nella tua tabella eLearning_progress? Forse puoi migliorare la domanda per capirlo meglio.

12 gen 2017 11:53:26
0

È ancora possibile che il tuo SQL stia creando problemi anche utilizzando $wpdb->delete Ho trovato utile usare uno di questi approcci:

  1. chiamare $wpdb->show_errors(); prima di eseguire la query
  2. attivare la modalità debug con define( 'WP_DEBUG', true ); nel tuo file wp-config.php
26 feb 2019 08:18:58
1

Utilizzando questo codice puoi facilmente eliminare

$MailMetaKey = yourkey // Sostituisci con la tua chiave meta
$post_id = yourpostid // Sostituisci con l'ID del post

$wpdb->query($wpdb->prepare("DELETE * FROM f0_postmeta WHERE meta_key = $MailMetaKey' and post_id = '$post_id' "));
16 dic 2021 10:10:13
Commenti

Non è molto diverso dagli esempi dell'OP che non funzionavano, tranne per il fatto che stai usando prepare(). Cosa fa prepare() se non stai usando la sostituzione degli argomenti della funzione?

Rup Rup
16 dic 2021 13:39:08
1

Questo codice non funziona, mostra un errore. Ho provato

Per favore guarda questa screenshot https://prnt.sc/M3DYH_EmHCtM

global $wpdb;

$id = $_REQUEST['delete'];

$table = 'custom_user_info';

$wpdb->delete( $table, array( 'id' => $id ) );

Ma quando uso questo codice, funziona perfettamente

$db_config = mysqli_connect('localhost', 'root', '', 'develop');

$id = $_REQUEST['delete'];

$delete = "DELETE FROM custom_user_info WHERE id=$id";

$query = mysqli_query($db_config, $delete);
15 apr 2022 01:41:19
Commenti

La tua risposta potrebbe essere migliorata con ulteriori informazioni di supporto. Per favore [modifica] per aggiungere maggiori dettagli, come citazioni o documentazione, in modo che altri possano confermare che la tua risposta è corretta. Puoi trovare maggiori informazioni su come scrivere buone risposte nel centro assistenza.

User User
16 apr 2022 23:05:10