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
Форумы портала PHP.SU :: Версия для печати :: Ошибка в классе
Форумы портала PHP.SU » » Объектно-ориентированное программирование » Ошибка в классе

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

1. vocor - 24 Марта, 2016 - 12:45:00 - перейти к сообщению
Не пойму где ошибка. Помогите пожалуйста
<?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)');

?>
2. siberian - 24 Марта, 2016 - 15:38:34 - перейти к сообщению
По-моему константы так не определяют, сейчас попробую

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

Потому как функция неизвестна была, вот и ругался интерпретатор
Так и $this->_db-> тоже ошибку вызывает
---------------------------
Вот так должно быть - Там конструкция не верна
function query($query)
{
if($this->db = mysql_query($query)) return '';
}
3. vocor - 24 Марта, 2016 - 16:30:08 - перейти к сообщению
Я ж через new mysqli подключаюсь , тогда и запросы выглядят как ->query.
В других случаях работает, в классе почему то ошибку выдает.
4. armancho7777777 - 24 Марта, 2016 - 17:54:53 - перейти к сообщению
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.  

Что выводит ?
5. vocor - 25 Марта, 2016 - 10:21:56 - перейти к сообщению
Fatal error: Call to a member function query() on null in C:\wamp64\www\oop\db.class.php on line 34
Вот ошибка
6. Bio man - 26 Марта, 2016 - 12:34:58 - перейти к сообщению
Ну так очевидно же, метод dbConnect не вызывался

 

Powered by ExBB FM 1.0 RC1