Я новичок в SQL и мне интересно, если мне нужно использовать wpdb->prepare
для следующего запроса к таблице, которую я создал
global $wpdb;
$tablename = $wpdb->prefix . "my_custom_table";
$sql = "SELECT * FROM " . $tablename . " ORDER BY date_created DESC";
$resulst = $wpdb->get_results( $sql , ARRAY_A );
Мне нужно использовать prepare
здесь? Как бы я это сделал?
ура
plugin-development
mysql
wpdb
Ричард Суини
источник
источник
$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 );
и он прекрасно работает! Не уверен, почему это будет. Но я понимаю это сейчас в любом случае!SELECT * FROM `wp_my_custom_table`
. Вы можете включить двойную поддержку цитаты, но тогда она должна была бы выглядеть следующим образом :SELECT * FROM "wp_my_custom_table"
.Когда вы используете метод prepare, он защищает код от уязвимостей SQL-инъекций.
Вот код, который необходимо изменить для использования
prepare()
;источник
В вашем случае невозможна атака SQL-инъекцией . Ваш код не нуждается в дополнительной защите, потому что не использует ввод пользователя, такой как: отправка, получение, запрос, cookie.
Не используйте сложные функции, когда нет необходимости экономить ресурсы сервера.
источник