Cómo usar $wpdb para eliminar en una tabla personalizada

11 ene 2017, 20:53:03
Vistas: 84K
Votos: 10

Estoy teniendo problemas para encontrar un buen recurso sobre cómo usar la función $wpdb.

Estoy tratando de eliminar una fila de una tabla personalizada llamada: eLearning_progress

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

La fila que me gustaría eliminar tiene el ID de '$user_id' y el 'module_id' de '$singlecomparearrays_remove'.

También he intentado:

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

y luego:

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

Por favor, intenta no suspirar muy fuerte ante mis intentos, pero no puedo encontrar una buena guía sobre cómo usar el comando DELETE con variables incluidas. Cualquier ayuda es muy apreciada.

Saludos, Alex

2
Comentarios

¿Has leído el codex sobre delete()?

bueltge bueltge
11 ene 2017 21:55:00

Sí, pero no lo entiendo lo suficiente como para hacerlo funcionar con mis variables. ¿Podrías darme un ejemplo?

Alex Green Alex Green
12 ene 2017 11:36:29
Todas las respuestas a la pregunta 4
0
34

La mejor solución de WP API para este objetivo es utilizar la función delete() para eliminar una fila.

Un pequeño ejemplo, para eliminar la fila con el ID en la tabla personalizada eLearning_progress.

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

Pero no puedo ver qué fila vas a eliminar en tu tabla eLearning_progress. Tal vez podrías mejorar la pregunta para entenderlo mucho mejor.

12 ene 2017 11:53:26
0

Aún es posible que tu SQL esté causando problemas incluso al usar $wpdb->delete Encontré útil utilizar uno de estos enfoques:

  1. llamar $wpdb->show_errors(); antes de realizar la consulta
  2. activar el modo de depuración con define( 'WP_DEBUG', true ); en tu archivo wp-config.php
26 feb 2019 08:18:58
1

Con esto puedes eliminar fácilmente

$MailMetaKey = yourkey
$post_id = yourpostid

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

Eso no es muy diferente a los ejemplos del OP que no funcionaron, excepto que estás usando prepare(). ¿Qué hace prepare() si no estás usando la sustitución de argumentos de la función?

Rup Rup
16 dic 2021 13:39:08
1

Este código no funciona, muestra un error. Lo he intentado

Por favor mira esta captura de pantalla https://prnt.sc/M3DYH_EmHCtM

global $wpdb;

$id = $_REQUEST['delete'];

$table = 'custom_user_info';

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

Pero cuando uso este código, funciona perfectamente

$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 abr 2022 01:41:19
Comentarios

Tu respuesta podría mejorarse con información adicional de apoyo. Por favor, [edita] para agregar más detalles, como citas o documentación, para que otros puedan confirmar que tu respuesta es correcta. Puedes encontrar más información sobre cómo escribir buenas respuestas en el centro de ayuda.

User User
16 abr 2022 23:05:10