Soy nuevo en SQL y me pregunto si necesito usarlo wpdb->prepare
para la siguiente consulta en una tabla que he creado
global $wpdb;
$tablename = $wpdb->prefix . "my_custom_table";
$sql = "SELECT * FROM " . $tablename . " ORDER BY date_created DESC";
$resulst = $wpdb->get_results( $sql , ARRAY_A );
¿Necesito usar prepare
aquí? ¿Como podría hacerlo?
Aclamaciones
plugin-development
mysql
wpdb
Richard Sweeney
fuente
fuente
$tablename = $wpdb->prefix . "my_custom_table"; $concert_id = 1; $sql = "SELECT * FROM " . $tablename . " WHERE concert_id = %d LIMIT 1;"; $prep_sql = $wpdb->prepare( $sql, $concert_id ); $get_concerts = $wpdb->get_results( $prep_sql , ARRAY_A );
y funciona muy bien! No estoy seguro de por qué sería eso. ¡Pero lo entiendo ahora en cualquier caso!SELECT * FROM `wp_my_custom_table`
. Puede habilitar el soporte de doble cita, pero entonces tendría que tener este aspecto:SELECT * FROM "wp_my_custom_table"
.Cuando usa prepare, está protegiendo el código de las vulnerabilidades de inyección SQL.
Aquí está el código que necesita modificar para usar
prepare()
;fuente
En su caso no es posible el ataque de inyección SQL . Su código no necesita protección adicional porque no use la entrada del usuario como: publicar, obtener, solicitar, cookie.
No utilice funciones complicadas cuando no sean necesarias para ahorrar recursos del servidor.
fuente