Примеры запросов в свою таблицу базы данных wordpress.

Решено

Приведите пожалуйста пару примеров как делать запросы в базу данных вордпресс с помощью $wpdb. Я создал свою таблицу по вот этому примеру создания таблицы в wp. Теперь мне нужно получить из нее данные, скажите какие способы есть для этого? На сколько я зная можно получать как строку из таблицы так и определенное значение ячейки. Хотелось бы увидеть примеры, в которых учтена безопасность передаваемых переменных в запросе.

Добавить Комментарий
    Ответ

    Приведу пример функции которая будет возвращать нам результат, при этом мы подготовим переменный передаваемые в запросе. Затем приведу пару примеров самих запросов.

     function get_results($id_user, $id_product){
     global $wpdb;
     $id_user = esc_sql($id_user);
     $id_product = esc_sql($id_product);
     // получим имя таблиц с префексом
     $table_name = $wpdb->get_blog_prefix() . 'name_table';
     // делаем запрос
     $result = $wpdb->get_results("SELECT * FROM {$table_name} WHERE id_product = {$id_product} AND id_user = ({$id_user}) ORDER BY id_user ASC;", ARRAY_A);
    return $result;
     }
    

    get_results — вернет все результаты в виде массива, так как вторым параметром указано значение ARRAY_A

     $result = $wpdb->get_var("SELECT * FROM {$table_name} WHERE id_product = {$id_product} AND id_user = {$id_user};", 2, 0);
     

    get_var — вернет значение ячейки. Какую именно брать колонку и строку в результате выборке мы определяем параметрами 2 и 0(2я колонка 0 строка, то есть первая)

     $result = $wpdb->get_row("SELECT * FROM {$table_name} WHERE id_user = {$id_user} AND id_product = {$id_product} ;");
     

    get_row — вернет строку, дополнительным параметром можно передать какую по счету начиная с нуля. Если не указывать второй параметр то берется по умолчанию вторая строка.

    Более подробно о запросах в базу с помощью wpdb() можно почитать тут: wpdb() — блок wp-kama

    Добавить Комментарий

    Ваш ответ

    Размещая свой ответ, вы соглашаетесь с правилами сайта.