powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Не могу определить ошибку при создание класса PHP
15 сообщений из 15, страница 1 из 1
Не могу определить ошибку при создание класса PHP
    #39674518
Stang
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день, не могу понять где ошибка, сам PHP ничего не выводит, причем даже если я специально пишу бред.
Вот я вызываю класс:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
<?php

include_once 'config.php';
include_once 'Class/Database.php';


try {
		
        $db = new Database(HOST, USER, PASS, DB);

        echo "<b>Таблицы из нашей БД: </b><br/>";

        echo "<pre>";
        print_r($db->query("SHOW TABLES"));
        echo "</pre>";

        echo "<b>Список вопросов: </b><br/>";

        echo "<pre>";
        print_r($db->query("SELECT * FROM la_question"));
        echo "</pre>";

    } catch (Exception $e) {
        echo $e->getMessage() . ':(';
    }	
?>


на странице у меня отображается только:
авторТаблицы из нашей БД:

Список вопросов:

Вот сам класс:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
<?php

class Database {
	
	public $connection;
	
	public function __constructor ($host, $user, $pass, $db) {
		$this->connection = new mysqli ($host, $user, $pass, $db); // создаем подключение к БД через mysqli
		
		if ($this->connection) {
			echo 'Есть подключение к БД';
			// устанавливаем кодировку
			$this->query("SET NAMES UTF8");
		} else {

			// обрабатываем ошибку подключения к БД
			throw new Exception('Нет подключения к БД');
		}
		
		
	}
	// запрос
	public function query($sql) {
		// проверяем соединение
		if (!$this->connection) {
			return false;
		}
		// делаем запрос
		$result = $this->connection->query($sql);
		// проверяем на ошибки
		if (mysqli_error($this->connection)) {
			throw new Exception(mysqli_error($this->connection));
		}
		// если запрос не на получение данных, возвращаем его результат
		if (is_bool($result)) {
			return $result;
		}
		// получаем данные в массив
		$data = array();
		// while ($row = mysqli_fetch_assoc($result)) 
		while ($row = $result->feth_object()) {
			$data[] = $row;
		}
		// очищаем память и возвращаем результат
		return $data;
		mysqli_free_result($result);
		
	}
				
}
?>



Я если даже создаю объект $db и вместо констант подставляю любой бред, ошибка не возникает. Создаю любой другой класс, например с тупым конструктором и выводом сообщения "класс создан", все работает. Значит где-то проблемы в классе Database... Но ошибок нет, отображение ошибок включено. Помогите пожалуйста! Не использую IDE.
...
Рейтинг: 0 / 0
Не могу определить ошибку при создание класса PHP
    #39674683
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Смотрите класс этот, может там die используется к примеру.
...
Рейтинг: 0 / 0
Не могу определить ошибку при создание класса PHP
    #39674684
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А, класс то ваш, не сразу увидел. Посмотрите phpinfo, точно ли включился вывод ошибок? А то может не тот конфиг исправляете. error reporting тоже должен быть не нулевым.
...
Рейтинг: 0 / 0
Не могу определить ошибку при создание класса PHP
    #39674695
d7i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У Вас
Код: php
1.
2.
3.
// очищаем память и возвращаем результат
		return $data;
		mysqli_free_result($result);


Может надо
Код: php
1.
2.
3.
// очищаем память и возвращаем результат
		mysqli_free_result($result);
		return $data;
...
Рейтинг: 0 / 0
Не могу определить ошибку при создание класса PHP
    #39674805
Stang
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
d7iУ Вас
Код: php
1.
2.
3.
// очищаем память и возвращаем результат
		return $data;
		mysqli_free_result($result);


Может надо
Код: php
1.
2.
3.
// очищаем память и возвращаем результат
		mysqli_free_result($result);
		return $data;


Да это я уже извращался, пытался по всякому, добавлял всякие проверки, забыл назад вернуть. Результат не меняется, хоть так, хоть этак, хоть без очищения вообще.
...
Рейтинг: 0 / 0
Не могу определить ошибку при создание класса PHP
    #39674810
Stang
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
HettА, класс то ваш, не сразу увидел. Посмотрите phpinfo, точно ли включился вывод ошибок? А то может не тот конфиг исправляете. error reporting тоже должен быть не нулевым.
А можно подробней? Я только учусь. Вообще, я искал инфу и вроде надо было так:
авторdisplay_errors
Default Value: On
Development Value: On
Production Value: Off

display_startup_errors
Default Value: Off
Development Value: On
Production Value: Off

error_reporting
Default Value: E_ALL
Development Value: E_ALL
Production Value: E_ALL
...
Рейтинг: 0 / 0
Не могу определить ошибку при создание класса PHP
    #39674813
Stang
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может я как-то в массив не правильно записываю? Там закомментил один вариант, потом пробовал в другой. Может у меня массив нулевой получается? Как бы вы посоветовали этот кусок кода сделать?
Код: php
1.
2.
3.
4.
5.
$data = array();
		// while ($row = mysqli_fetch_assoc($result)) 
		while ($row = $result->feth_object()) {
			$data[] = $row;
		}
...
Рейтинг: 0 / 0
Не могу определить ошибку при создание класса PHP
    #39675613
Stang
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Блин, я в конструкторе убиваю все подключение к БД, пытаюсь вывести одну единственную строку - "есть связь". Когда я на index.php создаю объект $db, должно вывести мою строку, а дальше посыпаться ошибки! Ничего не меняется, по прежнему выводит только:
авторТаблицы из нашей БД:

Список вопросов:
Как так, получается даже конструктор при создание объекта не обрабатывается???? В php_error_log пусто, ошибок нет. Что за чудеса?
...
Рейтинг: 0 / 0
Не могу определить ошибку при создание класса PHP
    #39675678
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StangКак так, получается даже конструктор при создание объекта не обрабатывается????А нет в Вашем коде конструктора. Есть какая-то функция public function __constructor, которая нигде не вызывается.

У конструктора имя метода другое - __construct(), читайте мануал: http://php.net/manual/ru/language.oop5.decon.php
...
Рейтинг: 0 / 0
Не могу определить ошибку при создание класса PHP
    #39675694
Stang
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vkleА нет в Вашем коде конструктора. Есть какая-то функция public function __constructor, которая нигде не вызывается.

У конструктора имя метода другое - __construct(), читайте мануал: http://php.net/manual/ru/language.oop5.decon.php

Пойду я застрелюсь... Неделю мозги себе выносил! Вроде же и не копипастил код, надо же так лохонуться.... Спасибо друг!

Вопрос, почему не было ошибки при вызове метода? Ведь переменная $connection нигде тогда не определялась... Почему без конструктора вообще не было ошибок? Ну нет, конструктора, нет подключения к БД, остальное то должно было обрабатываться, вызывался метод...
...
Рейтинг: 0 / 0
Не могу определить ошибку при создание класса PHP
    #39675700
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StangПочему без конструктора вообще не было ошибок?Класс вполне обходится без явно определенного конструктора - это норма. Ну а до появления ошибки код не успевает доработать, метод query() благополучно завершается на проверке
Код: php
1.
2.
3.
		if (!$this->connection) {
			return false;
		}
...
Рейтинг: 0 / 0
Не могу определить ошибку при создание класса PHP
    #39675760
Stang
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vkleКласс вполне обходится без явно определенного конструктора - это норма. Ну а до появления ошибки код не успевает доработать, метод query() благополучно завершается на проверке
Код: php
1.
2.
3.
		if (!$this->connection) {
			return false;
		}



Не, не доходило выполнение до этого кода, я пробовал вставлять вывод сообщения в этот кусок, перед возвратом false. Или и не должно было? Чтобы хоть понимать в будущем такие ошибки.
...
Рейтинг: 0 / 0
Не могу определить ошибку при создание класса PHP
    #39675763
Stang
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А еще меня интересует вопрос по куску моего кода:

Код: php
1.
2.
3.
4.
// while ($row = mysqli_fetch_assoc($result)) 
while ($row = $result->feth_object()) {
$data[] = $row;
}



Правильно отрабатывает как раз закомментированный код, можно пояснить почему, или может ссылкой в меня ткнуть? Спасибо.
...
Рейтинг: 0 / 0
Не могу определить ошибку при создание класса PHP
    #39675781
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Массив и объект - всё же, разные вещи.
Может, Вам подойдет mysqli_fetch_all() вместо цикла?
...
Рейтинг: 0 / 0
Не могу определить ошибку при создание класса PHP
    #39675815
Руслан Дамирович
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stang,

feth_object vs fetch_object
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Не могу определить ошибку при создание класса PHP
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]