[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Подключение к базе данных
Иззет
Здравствуйте, столкнулся с такой проблемой:
При подключении к базе данных непосредственно в самом файле через класс mysqli(); всё проходит успешно. Но в данном случае подключение к базе данных осуществляется через класс в отдельном файле и при этом в браузер выводится ошибка:
Fatal error: Call to undefined function mysqli() in ...
Так и не нашёл конкретного объяснения для моего случая. Заранее спасибо за помощь
inpost
у тебя нет функции mysqli. Ты говоришь о классах, может быть там соединение через mysql делается?
В любом случае нужен код соединения БД + код запроса. Желательно всё разместить на одном странице в 10-15 строчках. При этом убедись, что ошибка до сих пор присутствует.

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
Valick
Иззет, как так получилось, что зарегистрировались вы 22 дня назад, а первое сообщение только сегодня? smile.gif Стеснялись? biggrin.gif
___
Надо смотреть сам код, без этого трудно сказать что-то вразумительное.

_____________
Стимулятор ~yoomoney - 41001303250491
Иззет
Valick, в прошлый раз хотел было оставить сообщение, только нашёл всё-таки решение )
В интернете данная ошибка объясняется тем, что вероятно не установлено расширение mysqli();
Но при прямом соединении - $db = new mysqli("localhost", "root", "", "mybase"); - соединение нормально устанавливается.
В моем случае подключается файл через require_once();, там создаётся класс, где устанавливается соединение и пишется функция синглтон:

class User {
private $db;
private static $user = null;

public function __construct() {
$this->db = new mysqli("localhost", "root", "", "mybase");
$this->db->query("SET NAMES 'utf8'");

}
public static function getObject() {
if(self::$user === null) self::$user = new User();
return self::$user;
}
private function __destruct() {
if($this->db) $this->db->close();
}
}


В индексном файле соответственно обращение к классу идёт через getObject - $user = User::getObject();
Ramzil_Nixon
Иззет, а зачем все это делать в классе?

Создаешь файл connect.php, записываешь туда подключение в БД, и подключаешь с помощью include.

Лично я, так делаю.

_____________
Миллионы приходят, уходят, не в них счастье. Самым важным на свете всегда будут люди в этой комнате, вот здесь, сейчас...

user posted image
Иззет
Ramzil_Nixon, этот класс предназначен для авторизации и регистрации пользователя, я просто не стал вписывать все последующие функции, выписал те, в которых возможно кроется причина ошибки )
inpost
$this->db = new mysqli("localhost", "root", "", "mybase");

На эту строчку ругается?

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
Иззет
inpost, Да
inpost
Я не смогу помочь, если ты не сделаешь новый файл и в нём разместишь свой код посвященный работе с БД и полную строку ошибки.
Кроме этого дополнительно в phpinfo() проверь наличие mysqli раздела(!).

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
Иззет
inpost, спасибо, решил проблему )
inpost
Иззет
Ну так напиши решение, чтобы другие знали)

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
Иззет
Стыдно признаться, но проблема оказалась совсем в другом, ошибка возникала из-за конфликта с другим файлом, в котором была совершена синтаксическая ошибка )
Быстрый ответ:

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