Eu sou novo no SQL e estou querendo saber se preciso usar wpdb->prepare
a seguinte consulta em uma tabela que criei
global $wpdb;
$tablename = $wpdb->prefix . "my_custom_table";
$sql = "SELECT * FROM " . $tablename . " ORDER BY date_created DESC";
$resulst = $wpdb->get_results( $sql , ARRAY_A );
Preciso usar prepare
aqui? Como eu faria isso?
Felicidades
plugin-development
mysql
wpdb
Richard Sweeney
fonte
fonte
$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 );
E funciona muito bem! Não sei por que isso seria. Mas eu entendo agora em qualquer caso!SELECT * FROM `wp_my_custom_table`
. Você pode ativar o suporte de aspas duplas, mas então ele teria que ficar assim:SELECT * FROM "wp_my_custom_table"
.Quando você usa o prepare, ele protege o código contra vulnerabilidades de injeção do SQL.
Aqui está o código que você precisa modificar para usar
prepare()
;fonte
No seu caso, não é possível ataque de injeção SQL . Seu código não precisa de proteção adicional, porque não use a entrada do usuário como: post, get, request, cookie.
Não use funções complicadas quando não forem necessárias para economizar recursos do servidor.
fonte