Запросы к базе данных sql

AI
На сайте с 30.10.2014
Offline
24
721

Добрый вечер, на сколько такие обращения к базе данных sql CMS Wordprss являются правильными, и безопасными.

  /* Получаем общее количество комментариев, опубликованных пользователем за всё время: */
$comment_count_s = "\r\n" . $wpdb->get_var("
SELECT COUNT( * )
FROM {$wpdb->comments}
WHERE comment_approved = 1 AND user_id = {$user_id} ");

/* Получаем дату и количество комментариев за прошлый месяц опубликованных пользователем: */
$user_count_m = $wpdb->get_results("
SELECT *
FROM {$wpdb->users}
WHERE ID = '{$user_id}' AND user_login = '{$user_login}' ");
foreach ($user_count_m as $month){
$month->user_com;
$month->user_date;
}

/* Сравниваем полученную дату с датой публикации комментариев, опубликованных пользователем за текущий месяц: */
$comment_count = "\r\n" . $wpdb->get_var("
SELECT COUNT( * )
FROM {$wpdb->comments}
WHERE comment_date_gmt > '{$month->user_date}' AND comment_approved = 1 AND user_id = '{$user_id}' ");

И вот ещё один вопросc: почему через стандартный класс $wpdb, не могу читать данные из созданной таблицы в phpmyadmin, хотя в уже созданных движком все нормально считывается. Хотелось бы хранить все результаты в отдельной таблице, а не использовать стандартные.

siv1987
На сайте с 02.04.2009
Offline
427
#1

Настолько безопасными, насколько "безопасными" являются данные из этих переменных.

http://codex.wordpress.org/Class_Reference/ru:wpdb_Class

AI
На сайте с 30.10.2014
Offline
24
#2

А почему этот класс не хочет работать с созданными в ручную таблицами, что только не пробовал, не считывает и всё.

V2
На сайте с 21.06.2013
Offline
47
#3
AndyIT:
почему через стандартный класс $wpdb, не могу читать данные из созданной таблицы в phpmyadmin, хотя в уже созданных движком все нормально считывается. Хотелось бы хранить все результаты в отдельной таблице, а не использовать стандартные.

А каким образом вы обращаетесь к вновь созданной таблице?

Строку запроса приведите.

AI
На сайте с 30.10.2014
Offline
24
#4

 $user_count_m = $wpdb->get_results("

SELECT *
FROM {$wpdb->stat}
WHERE ID = '{$user_id}' AND user_login = '{$user_login}' ");
foreach ($user_count_m as $month){
$month->user_com;
$month->user_date;
}

Обращаюсь так же как и писал выше, только к другой таблице "stat", но результата нет.

V2
На сайте с 21.06.2013
Offline
47
#5
AndyIT:
 $user_count_m = $wpdb->get_results("
SELECT *
FROM {$wpdb->stat}
WHERE ID = '{$user_id}' AND user_login = '{$user_login}' ");
foreach ($user_count_m as $month){
$month->user_com;
$month->user_date;
}


Обращаюсь так же как и писал выше, только к другой таблице "stat", но результата нет.

Разумеется. Его и не будет. Странно, что fatal error не выдает.

Вы обращаетесь к методу, который не прописан в классе - $wpdb->stat

Пробуйте обратится напрямую к таблице

 $user_count_m = $wpdb->get_results("
SELECT *
FROM stat
WHERE ID = '{$user_id}' AND user_login = '{$user_login}' ");
foreach ($user_count_m as $month){
$month->user_com;
$month->user_date;
}

Если не получится, то сделайте прямой запрос к БД обычным mysql запросом

AI
На сайте с 30.10.2014
Offline
24
#6

Решил так:

$table_stat = $wpdb->prefix.statistics;
$wp_stat_last = $wpdb->get_row("SELECT * FROM $table_stat WHERE id = $user_id");
echo $wp_stat_last->user_id; и.т.д

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий