Не корректная работа функции в классе бд

gawric

Новичок
Здравствуйте. Изучаю PHP относительно не давно, вчера читал книгу и делал класс для подключения mysqli и не большой запрос
Сам класс:
PHP:
<?php
require 'info_class.php';//подключаем класс с данными для коннекта

class db {
            private $info;//объявляем переменную для работы внутри класса
            public $mysqli;//объявляем переменную для работы по всем классам
 
public function __construct() {        //запускаем конструкт т.к он запускается всегда первым в классе

        $this->info = new info();//создаем объект для подключения к бд (параметры)
        $this->mysqli = new mysqli($this->info->host, $this->info->login, $this->info->pass, $this->info->db);//подключаемся к бд
        $this->mysqli->query("SET NAMES 'utf8' ");//вызываем кодировку для работы с бд
     
            }
           

public function query1($query) {        //выполняем зарос в базу данных
 
   
    //$query = "SELECT ip FROM allserver3";
  $result =  $this->mysqli->query($query);//запрашиваем информацию из базы
    return $result;//возвращаем результат запроса
 
 
 
}
            }
?>
Вот как я его использую:
PHP:
<?php

require_once "db.class.php";//класс работы с базой данных

$emp = new db();//создаем объект

$emp->query1($query);//вызываем функцию


  if(mysqli_num_rows($emp->query1($result))>0){//получаем результат и считаем кол-во строк в полученном результате
                echo  "Данный Логин уже есть в базе данных<br>";
               
}
else
{
    echo "логин успешно добавлен в базу данных<br>";
   
}
echo mysql_errno();
/* проверяем соединение */


?>
Я пытался решить ее сам 2-3 дня, просто голову всю сломал. Вообщем если я передаю из php файла функцию с аргументом, то функция выдает ошибку что "запрос к базе данных пустой".

$query = "SELECT ip FROM allserver3";
$emp->query1($query);//вызываем функцию

Но если я в функции вызываю "$query = "SELECT ip FROM allserver3";" все срабатывает нормально.
Вопрос вот в чем, почему аргумент хоть и передается в функцию
$result = $this->mysqli->query($query);//запрашиваем информацию из базы <=------ игнорирует переданные данные.
делал в функции print_r($query); нормально выводит текст запроса.
Заранее спасибо за ответ.
 

HraKK

Мудак
Команда форума
Приведи реальный код. В твоем коде $query пустой.
 

gawric

Новичок
Код:
<?php

require_once "db.class.php";//класс работы с базой данных

$emp = new db();//создаем объект
$query = "SELECT ip FROM allserver3";//теперь не пустая query
$emp->query1($query);//вызываем функцию


  if(mysqli_num_rows($emp->query1($result))>0){//получаем результат и считаем кол-во строк в полученном результате
                echo  "Данный Логин уже есть в базе данных<br>";
             
}
else
{
    echo "логин успешно добавлен в базу данных<br>";
 
}
echo mysql_errno();
/* проверяем соединение */


?>
Код:
<?php
require 'info_class.php';//подключаем класс с данными для коннекта

class db {
            private $info;//объявляем переменную для работы внутри класса
            public $mysqli;//объявляем переменную для работы по всем классам
public function __construct() {        //запускаем конструкт т.к он запускается всегда первым в классе

        $this->info = new info();//создаем объект для подключения к бд (параметры)
        $this->mysqli = new mysqli($this->info->host, $this->info->login, $this->info->pass, $this->info->db);//подключаемся к бд
        $this->mysqli->query("SET NAMES 'utf8' ");//вызываем кодировку для работы с бд
   
            }
         

public function query1($query) {        //выполняем зарос в базу данных
 
   
  $result =  $this->mysqli->query($query);//запрашиваем информацию из базы
    return $result;//возвращаем результат запроса
}
            }
?>
 

gawric

Новичок
"return $result;//возвращаем результат запроса" из функции передаем результат запроса "query"
print_r("$result") -> выводит результат 11, когда напрямую в функции делаю запрос в бд
 

gawric

Новичок
Wow все спасибо ошибка была именно там. Вот что значит свежий взгляд:) моя душа спокойна
 
Сверху