Cum să folosești $wpdb pentru a șterge date dintr-o tabelă personalizată

11 ian. 2017, 20:53:03
Vizualizări: 84K
Voturi: 10

Am dificultăți în găsirea unei resurse bune despre utilizarea funcției $wpdb.

Încerc să șterg un rând dintr-o tabelă personalizată numită: eLearning_progress

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

Rândul pe care doresc să-l șterg are ID-ul '$user_id' și 'module_id' cu valoarea '$singlecomparearrays_remove'.

Am încercat și:

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

și apoi:

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

Vă rog să nu oftați prea tare la încercările mele, dar nu pot găsi un ghid bun despre utilizarea comenzii DELETE cu variabile incluse. Orice ajutor este apreciat.

Cu stimă, Alex

2
Comentarii

Ai citit codex-ul despre delete()?

bueltge bueltge
11 ian. 2017 21:55:00

Da, dar nu îl înțeleg suficient cât să-l fac să funcționeze cu variabilele mele. Ai putea să-mi dai un exemplu?

Alex Green Alex Green
12 ian. 2017 11:36:29
Toate răspunsurile la întrebare 4
0
34

Cea mai bună soluție API pentru WordPress pentru acest scop este utilizarea funcției delete() pentru a șterge un rând.

Un mic exemplu, pentru a șterge rândul cu ID din tabelul personalizat eLearning_progress.

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

Dar nu văd care rând veți șterge din tabelul eLearning_progress? Poate ați putea îmbunătăți întrebarea pentru a o înțelege mai bine.

12 ian. 2017 11:53:26
0

Este posibil ca SQL-ul tău să creeze probleme chiar dacă folosești $wpdb->delete. Am găsit utilă utilizarea uneia dintre aceste abordări:

  1. apelează $wpdb->show_errors(); înainte de a executa interogarea
  2. activează modul de depanare cu define( 'WP_DEBUG', true ); în fișierul tău wp-config.php
26 feb. 2019 08:18:58
1

Folosind acest cod puteți șterge cu ușurință

$MailMetaKey = yourkey
$post_id = yourpostid

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

Nu este foarte diferit de exemplele OP care nu au funcționat, cu excepția faptului că folosești prepare(). Ce face prepare() dacă nu folosești substituția argumentelor funcției?

Rup Rup
16 dec. 2021 13:39:08
1

Acest cod nu funcționează, afișează o eroare. Am încercat

Vă rugăm să consultați această captură de ecran https://prnt.sc/M3DYH_EmHCtM

global $wpdb;

$id = $_REQUEST['delete'];

$table = 'custom_user_info';

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

Dar când folosesc acest cod, funcționează perfect

$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
Comentarii

Răspunsul tău ar putea fi îmbunătățit cu informații suplimentare de susținere. Te rugăm să [editezi] pentru a adăuga detalii suplimentare, cum ar fi citări sau documentație, astfel încât alții să poată confirma că răspunsul tău este corect. Poți afla mai multe informații despre cum să scrii răspunsuri bune în centrul de ajutor.

User User
16 apr. 2022 23:05:10