César J. Aquino Maximiliano - Ya con 25 años - Software Developer en Orange612 - Bombero Voluntario (B-105) - Profesor de programación para el instituto ISMEM y Fullstack - Futuro papá - Uso gatos en mis diapositivas
$wpdb WordPress defines a class called wpdb, which contains a set of functions used to interact with a database $wpdb is a global object. https://codex.wordpress.org/Class_Reference/wpdb
Cómo usar $wpdb Debes llamar al objeto $wpdb al inicio de tu archivo o al empezar alguna función en específica. global $wpdb; $resultados= $wpdb->get_results( "SELECT id, name FROM mitablaejemplo" ); o function do_something() { global $wpdb; $resultados= $wpdb->get_results( "SELECT id, name FROM $wpdb->posts" ); }
Qué operaciones puedo hacer con $wpdb - Obtener el nombre de las tablas de WP con su prefijo - Traer una columna de una tabla - Traer una fila de una tabla - Traer varios datos de una tabla - Insertar registros - Actualizar registros - Eliminar registros - Proteger de ataques de inyección de SQL - Ejecutar cualquier script
Qué operaciones puedo hacer con $wpdb - Traer una columna de una tabla - Traer una fila de una tabla - Traer varios datos de una tabla - Insertar registros - Actualizar registros - Eliminar registros - Proteger de ataques de inyección de SQL - Ejecutar cualquier script CUALQUIERA
$wpdb->get_var() La función get_var toma una consulta y devuelve un valor que se puede asignar directamente a una variable. $numberposts = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->posts;"); echo "The number of rows in wp_posts are:" .$numberposts; https://codex.wordpress.org/Class_Reference/wpdb#SELECT_a_Variable
$wpdb->get_row() Esta función sirve para obtener una fila completa de una consulta. Esta función toma una consulta y también toma un parámetro para indicar en qué formato debería ser la salida. $posts = $wpdb->get_row("SELECT * FROM $wpdb->posts WHERE ID = 1", ARRAY_A); print_r($posts); https://codex.wordpress.org/Class_Reference/wpdb#SELECT_a_Row
$wpdb->get_col() Estea función sirve para obtener una columna de una consulta. La salida de esta función es una matriz. $posttitles = $wpdb->get_col( "SELECT post_title FROM $wpdb->posts;" ); foreach ( $posttitles as $title ) { echo $title; } https://codex.wordpress.org/Class_Reference/wpdb#SELECT_a_Column
$wpdb->get_results() Esta función se utiliza para obtener una salida de una consulta que tiene salida como varias filas y varias columnas. $result = $wpdb->get_results("SELECT ID, post_title FROM $wpdb->posts WHERE post_status = ‘publish’"); print_r($result); https://codex.wordpress.org/Class_Reference/wpdb#SELECT_Generic_Results
Inyección de SQL Muchas veces usamos datos proporcionados por el usuario, en un formulario por ejemplo. Esto puede causar problemas en caso de que haya una inyección de SQL en la consulta. En la inyección de SQL, el atacante inyecta una consulta en un valor de formulario que utilizará para crear una consulta de base de datos. Estas consultas pueden ser tan peligrosas como descargar la base de datos completa hasta eliminar toda la base de datos. http://en.wikipedia.org/wiki/SQL_injection
$wpdb->prepare() La función prepare debe usarse para proteger contra la inyección SQL. El método de preparación es muy similar al método printf que toma una consulta y luego los valores de los parámetros que se van a sustituir. Por lo tanto, en caso de que quisiéramos obtener los detalles del puesto de un ID en particular en el que el ID se obtiene de un campo de formulario que debe utilizar la función de preparación para desinfectar la consulta como se muestra a continuación. $post = $wpdb->get_row($wpdb->prepare("SELECT * FROM $wpdb->posts WHERE ID = %d",$id)); print_r($post); https://developer.wordpress.org/reference/classes/wpdb/prepare/
$wpdb->insert() Esta función nos permite insertar un registro a una tabla de nuestra base de datos. $wpdb->insert( $wpdb->postmeta, array('post_id' => 1, 'meta_key' => 'price', 'meta_value' => '500' ), array( '%d', '%s', '%s') ); https://codex.wordpress.org/Class_Reference/wpdb#INSERT_row
$wpdb->update() wpdb también proporciona un método de actualización mediante el cual puede actualizar algunos valores en una tabla de base de datos. $wpdb->update( $wpdb->postmeta, array('meta_value' => '750'), array('post_id' => 1, 'meta_key' => 'price' ) ); https://codex.wordpress.org/Class_Reference/wpdb#UPDATE_rows
$wpdb->delete() Esta función se utiliza para eliminar filas de una tabla de base de datos. $wpdb->delete( $wpdb->posts, array( 'ID' => 1 ) ); https://codex.wordpress.org/Class_Reference/wpdb#DELETE_Rows
Para más información: Charla para traer el wp-admin al front https://speakerdeck.com/cesjam7/trayendo-el-wp-admin-al-front Realizada por un tal César Aquino Maximiliano.