Eliminando datos de una tabla personalizada en WordPress

20 jun 2015, 10:11:05
Vistas: 32K
Votos: 1

Estoy tratando de eliminar registros de mi tabla personalizada pero no elimina nada.

Aquí está mi código:

<?php
global $wpdb;
$retrieve_data = $wpdb->get_results( "SELECT * FROM wp_paypal" );

// algo de código para mostrar aquí...

?>
<form method="post" enctype="multipart/form-data">
   <td><input type="submit"  name="delete" value="Delete"  /></td>
</form>
<?php
$myid= $retrieved_data->id;

if (isset($_POST['delete'])) {
        //global $wpdb;
        $wpdb->query(
              'DELETE  FROM $wpdb->paypal
               WHERE id = "'.$myid.'"
              '
        );

    }
}
1
Comentarios

¿Qué problema estás enfrentando?

sakibmoon sakibmoon
20 jun 2015 10:51:54
Todas las respuestas a la pregunta 2
0

Intenta usar $wpdb->prefix en lugar de $wpdb en consultas DELETE.

Ejemplo:

 $wpdb->query(
              'DELETE  FROM '.$wpdb->prefix.'paypal
               WHERE id = "'.$myid.'"'
);
20 jun 2015 14:47:08
0

Sé que llego tarde... pero el principal problema en tu pregunta es que estás usando comillas simples (') en tu declaración:

$wpdb->query(
      'DELETE  FROM $wpdb->paypal
       WHERE id = "'.$myid.'"
      '
);

Esto significa que $wpdb->paypal no está produciendo el resultado que esperas. Primero, asumes que esto muestra el nombre de la tabla "paypal". Pero no es así.

Si $myid tiene un valor de 4, tu código PHP producirá esta sentencia SQL:

DELETE FROM $wpdb->paypal WHERE id = 4

... en lugar de ser:

DELETE FROM wp_paypal WHERE id = 4

Para solucionar el problema, debes:

  1. Cambiar tus comillas simples a comillas dobles. (Lee por qué)
  2. Agregar el prefijo de la tabla antes del nombre de la tabla.

Así:

$table_name = $wpdb->prefix . 'paypal';
$wpdb->query( "DELETE  FROM {$table_name} WHERE id = '{$myid}'" );

Además, asegúrate de sanitizar la variable $myid porque si envío el valor 0 OR 1=1, esto producirá esta sentencia SQL:

DELETE FROM wp_paypal WHERE id = 0 OR 1=1

... y eliminará todas las filas de la tabla

30 nov 2018 15:18:26