[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проблема при получении записей из БД
Alex8076
Я написал свой класс для работы с БД. Вот код класса:
<?php
class
MySQL {

private $mysqli;

private $db_server;
private $db_user;
private $db_password;
private $db_name;

public function __construct($db_server, $db_user, $db_password, $db_name) {
$this->db_server = $db_server;
$this->db_user = $db_user;
$this->db_password = $db_password;
$this->db_name = $db_name;
}

public function connect() {
$this->mysqli = new mysqli($db_server, $db_user, $db_password, $db_name);
}

public function close() {
$this->mysqli->close();
}

public function query($query) {
return $this->mysqli->query($query);
}

}


Затем использовал его для работы с БД. Вот код index.php:
<?php
require_once(dirname(__FILE__).'/scripts/php/Config.php');
require_once(dirname(__FILE__).'/scripts/php/MySQL.php');
require_once(dirname(__FILE__).'/scripts/php/View.php');
require_once(dirname(__FILE__).'/scripts/php/Utils.php');

$utils = new Utils();
$utils->requireDaterLibrary();

$config = new Config();
$site_domain = $config::SITE_DOMAIN;
$db_table_prefix = $config::DB_TABLE_PREFIX;

$mysqli = new MySQL($config::DB_SERVER, $config::DB_USER, $config::DB_PASSWORD, $config::DB_NAME);
$mysqli->connect();

$view = new View($site_domain);

$dater = new Dater\Dater(new Dater\Locale\Ru());
$timezoneDetector = new Dater\TimezoneDetector();
$dater->setClientTimezone($timezoneDetector->getClientTimezone());

$dataHandler = new Dater\DataHandler($dater);
$dataHandler->enableOutputTimezoneHandler();
$dataHandler->convertRequestDataToServerTimezone();

$posts_result_set = $mysqli->query("SELECT * FROM `lcjqgq#0_posts` WHERE `post_status` = '1' ORDER BY `post_id` DESC LIMIT 5");

while ($row = mysqli_fetch_array($posts_result_set)) {
$post_id = $row['post_id'];
$post_comments_count_result_set = $mysqli->query(
'SELECT `post_comments_count` FROM `'.$db_table_prefix.'posts` WHERE `post_id` = '.$post_id."'");
if ($row_comments = $post_comments_count_result_set->fetch_assoc()) {
$post_comments_count = $row_comments['post_comments_count'];
}

if ($post_comments_count > 0) {
$post_comments = $view->pluralForm($post_comments_count, array('комментарий', 'комментария', 'комментариев'));
} else {
$post_comments = 'Добавить комментарий';
}

$post_timestamp = strtotime($row['post_date']);
$post_format_year = (date('Y', $post_timestamp) < date('Y')) ? 'Y' : '' ;

$post_content = $row['post_content'];

if (preg_match("~\[audio\](.*)\[\/audio\]~", $post_content, $audio_url)) {
$audio = str_replace('%audio_url%', $audio_url[1], $audio_html_template);
$post_content .= $audio;
}

$post_html = $view->generatePostsView($row, $post_content, $dater, $post_comments);
$posts_html_output .= $post_html;
}

$mysqli->close();

$view->outFinalView($posts_html_output, $timezoneDetector);


Подскажите пожалуйста, в чём проблема? SQL-запрос точно правильный - вставлял его в phpMyAdmin и он сработал. Подключение тоже - пароль, пользователь, хост, имя базы данных 100% правильные, я проверял.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.