Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Ошибка в классе

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
vocor
Отправлено: 24 Марта, 2016 - 12:45:00
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Март 2016  


Помог: 0 раз(а)




Не пойму где ошибка. Помогите пожалуйста
<?php
class db
{
private $_db;
const HOST = "localhost";
const USER = "root";
const PASS = "";
const NAME = "oop";
private function dbConnect()
{
$connect = new mysqli(self::HOST, self::USER, self::PASS, self::NAME);
if (!$connect->connect_error)
{
$this->_db = $connect;
return $this->_db;
}
else
{
echo "Нет соединения с базой!";
}
}
public function query($query)
{
return $this->_db->query($query);
}
public function createTable($table_name, $query)
{
return $this->query("CREATE TABLE IF NOT EXIST $table_name($query)");
}
}
$exemp = new db;
$exemp->createTable('users', 'name varchar(20),
pass varchar(20)');

?>
 
 Top
siberian
Отправлено: 24 Марта, 2016 - 15:38:34
Post Id



Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Июнь 2011  


Помог: 0 раз(а)




По-моему константы так не определяют, сейчас попробую

Там, где return $this->_db->query($query);
нужно mysql_query($query)

Потому как функция неизвестна была, вот и ругался интерпретатор
Так и $this->_db-> тоже ошибку вызывает
---------------------------
Вот так должно быть - Там конструкция не верна
function query($query)
{
if($this->db = mysql_query($query)) return '';
}

(Отредактировано автором: 24 Марта, 2016 - 15:59:04)

 
 Top
vocor
Отправлено: 24 Марта, 2016 - 16:30:08
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Март 2016  


Помог: 0 раз(а)




Я ж через new mysqli подключаюсь , тогда и запросы выглядят как ->query.
В других случаях работает, в классе почему то ошибку выдает.
 
 Top
armancho7777777 Супермодератор
Отправлено: 24 Марта, 2016 - 17:54:53
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




vocor пишет:
в классе почему то ошибку выдает.

Ошибка-та где ?

После подключения к БД добавьте:
PHP:
скопировать код в буфер обмена
  1. mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

И
PHP:
скопировать код в буфер обмена
  1. try {
  2.     $exemp = new db;
  3.     $exemp->createTable('users', 'name varchar(20), pass varchar(20)');
  4. } catch (mysqli_sql_exception $e){
  5.     echo $e->getMessage();
  6. }
  7.  

Что выводит ?

(Отредактировано автором: 24 Марта, 2016 - 18:14:35)

 
 Top
vocor
Отправлено: 25 Марта, 2016 - 10:21:56
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Март 2016  


Помог: 0 раз(а)




Fatal error: Call to a member function query() on null in C:\wamp64\www\oop\db.class.php on line 34
Вот ошибка
 
 Top
Bio man
Отправлено: 26 Марта, 2016 - 12:34:58
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


Помог: 52 раз(а)




Ну так очевидно же, метод dbConnect не вызывался
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Объектно-ориентированное программирование »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB