Привет всем. Скажите, как передать переменную $mysqli в метод select, что бы метод выполнился? Понимаю что ошибка простая, но понять не могу какая PHP: class DB { function __construct() { $DB_HOST = 'localhost'; $DB_USER = 'root'; $DB_PASSWORD = ''; $DB_DATABASE = 'test'; $mysqli = new mysqli($DB_HOST, $DB_USER, $DB_PASSWORD, $DB_DATABASE); $mysqli->set_charset('utf8'); if (mysqli_connect_errno()) { printf("Connect failed: %s\n", mysqli_connect_error()); exit(); } } public function select() { $result = $mysqli->query('SELECT * FROM comment'); while ($row = mysqli_fetch_assoc($result)) { print_r($row); } } } $a = new DB(); $a->select(); выводит ошибку Fatal error: Call to a member function query()
Опередели свойство класса DB в котором будешь хранить объект подключения к бд. Далее используй его везде. А вообще, советую начать изучать, а не копипастить. Используй конфиг.
Тебе дали подсказку определить свойство класса $mysqli ну так вот определи его после названия класса PHP: class DB { public static $mysqli; //или private static $mysqli; //дальше твой код ну а вообще если ты второй день в программировании лучше начни с озов, если ты конечно не сверх запоминающий человек, который прочитал один раз и все заполнил на зубок.
@MouseZver я как пример показал) куда копать) я от куда знаю что ему нужно, а в друг он захочет использовать именно эту переменную еще где либо при вызове класса)
@MouseZver Я знаю что ты зверь в php я с тобой не спорю. Да и плюс я еще не выучил эти классы и методы объекты. Так что не обижайся!
PHP: class Model { /** @var \mysqli */ public $DB; /** * Подключение к БД */ public function __construct() { $this->DB = mysqli_connect('localhost', 'user', 'password', 'bd_name') or die('Невозможно подключиться к серверу БД.'); $this->DB->query('SET NAMES utf8'); } /** * Возвращает id и имя пользователя * * @param $id int * @return array */ public function getUserInfo($id) { $user = null; $queryString = 'SELECT `id`, `name` FROM table WHERE id = ?'; if ($stmt = $this->DB->prepare($queryString)) { $stmt->bind_param( "i", $id ); $stmt->execute(); if (!$stmt->error) { $stmt->bind_result( $user['id'], $user['name'] ); $stmt->fetch(); } $stmt->close(); } return $user; } } $model = new Model(); var_dump($model->getUserInfo(1))