Backend Frontend Template Pro wiki: Manipulación manual de datos: dentro de una función

Oct 10, 2023 | Backend Frontend Template Pro, Backend Frontend Template Pro: wiki, Plugin, WordPress

(Wiki página de Backend Frontend Template Pro: the WordPress Plugin Template)

  1. Funciones WordPress Para mainpular la base de datos WordPress proporciona la clase $wpdb, llámala dentro de una función con global $wpdb Algunas funciones de manipulación de datos de $wpdb son:
    • $wpdb->prefix: el prefijo de la base de datos de WordPress, todas las tablas tendrán este prefijo
    • $wpdb->query($query): hace una consulta directa
    • $wpdb->insert($table_name, $array_data): inserta una nueva entrada (la función sanea los datos)
    • $data = $wpdb->insert_id: último id insertado
    • $wpdb->delete($table_name, $array_search_data): eliminar entradas que coincidan con los datos del array de búsqueda (la función sanea los datos)
    • $wpdb->update($table_name, $array_data, $array_search_data): actualiza los datos en las entradas que coincidan los datos de array (la función sanea los datos)
    • $data = $wpdb->get_results($query, “ARRAY_A” ): devuelve un array bidimensional con todo los datos
    Toda la información de la clase puede encontrarse aquí
  2. Funciones de Backend Frontend Template BFT ofrece funciones adicionales para los programadores que prefieran este estilo de acceso a la base de datos
    • $this->wpdb_get_results_array($query): devuelve un array bidimensional con todo los datos
    • $this->wpdb_get_results_with_index($query): devuelve un array bidimensional con todos los datos, el índice de cada fila será el dato de la primera columna
    • $this->wpdb_get_results_one_data_per_row($query): devuelve un array mono dimensional, sólo devuelve la primera columna de cada fila
    • $this->wpdb_get_results_index_and_data_per_row($query): devuelve un array mono dimensional, el dato de la primera columna será el índice, la segunda será el dato
    • $this->wpdb_get_result_one_data($query): devuelve una cadena, sólo devuelve la primera columna de la primera línea
    • $this->wpdb_insert_update_on_duplicate_key($table, $data, $multi_row = false, $modified_value = NULL, $data_for_update = array()): inserta o actualiza varios datos, más explicación debajo (la función sanea los datos)
    • $this->wpdb_insert_update_on_duplicate_key_delete_others($table, $data, $column_where_delete, $value_where_delete): inserta o actualiza varios datos, entonces elimina las filas no actualizadas, más información debajo (la función sanea los datos)
    Explicaciones adicionales
    • wpdb_insert_update_on_duplicate_key $this->wpdb_insert_update_on_duplicate_key($table, $data, $multi_row = false, $modified_value = NULL, $data_for_update = array()) Esta función puede insertar o actualizar una o varias filas, cuando actualizando los datos puede usar datos extras o sólo usar los datos usados en la inserción
      • $table: nombre de la tabla
      • $data: array mono dimensional (un insert) o bidimensional (varias inserciones), los datos pueden tener verdadero NULL o string ‘NULL’
      • $multi_row: true si se necesitan varios inserciones
      • $modified_value: datetime de la modificación, usará la columna $this->database_datetime_modified_name, si NULL usará el tiempo actual
      • $data_for_update: los datos usados para el caso de actualización, si el array está vacio la actualización usará la $data info
    • wpdb_insert_update_on_duplicate_key_delete_others $this->wpdb_insert_update_on_duplicate_key_delete_others($table, $data, $column_where_delete, $value_where_delete) Esta función usa wpdb_insert_update_on_duplicate_key, entonces hace una eliminación de las filas no actualizadas
      • $table: nombre de la tabla
      • $data: array mono dimensional (un insert) o bidimensional (varias inserciones), los datos pueden tener verdadero NULL o string ‘NULL’
      • $column_where_delete: la columna a comprobar (id, clave foránea, etc.)
      • $value_where_delete: el id a comprobar en column_where_delete
      Esta función es equivalente a eliminar todos losdatos e insertar los nuevos datos, el problema es el abuso de la base de datos, con esto la base de datos actualiza todos los datos (quizás sólo actualiza $this->database_datetime_modified_name), y entonces elimina todos los datos no actualizados. Menos UPDATE/INSERTS, menos DELETES
    NOTA: debido a como WordPress trabbaja las funciones BFT no son accesible desde crear/atualizar/eliminar base de datos en class-your-plugin-install-upgrade-deinstall-database.php sólo usar las funciones oficiales de WordPress
  3. Saneamiento de datos Para sanear las entradas WordPress proporciona varias funciones de saneamiento en la clase $wpdb Algunas funciones de saneamiento de $wpdb son:
    • $wpdb->sanitize_key: sanea un id
    • $wpdb->sanitize_text_field: sanea una cadena
    • $wpdb->sanitize_textarea_field: sanea multiples cadenas
    • $wpdb->prepare: sanea una consulta completa
    Toda la información de saneamiento puede encontrarse aquí Para el uso de $wpdb->prepare($query, $args) comprueba la información

0 comentarios

Enviar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Utilizamos Cookies propias y de terceros para mejorar nuestros servicios y para ofrecerte una mejor experiencia (por ejemplo, mostrando publicidad personalizada) mediante el análisis de tus hábitos de navegación (por ejemplo, páginas visitadas). Puedes aceptar todas las cookies pulsando el botón “Aceptar”. Para configurarlas, obtener más información o rechazar su uso, haz click AQUÍ

Los ajustes de cookies en esta web están configurados para «permitir las cookies» y ofrecerte la mejor experiencia de navegación posible. Si sigues usando esta web sin cambiar tus ajustes de cookies o haces clic en «Aceptar», estarás dando tu consentimiento a esto.

Cerrar