<?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% правильные, я проверял.