Есть два класса Первый
<?php
class Connection
{
protected $connection;
private $host;
private $connect_user;
private $connect_pass;
private $db_name;
public function __construct($host, $connect_user, $connect_pass, $db_name)
{
$this->host = $host;
$this->connect_user = $connect_user;
$this->connect_pass = $connect_pass;
$this->db_name = $db_name;
try
{
$this->connection = mysqli_connect($this->host, $this->connect_user, $this->connect_pass, $this->db_name);
echo "Nice! We connect to db. <br>";
}
catch (Exception $e)
{
echo "We can't connect to database. <br>" . getMessage($e) . "<br>";
}
}
public function close_connect()
{
try
{
mysqli_close($this->connection);
}
catch(Exception $e)
{
echo "We can't close connection <br>" . getMessage($e) . "<br>";
}
}
}
?>
Второй
<?php
include_once "Connection.php";
class Query
{
private $query_string;
public $query_result;
function __construct(Connection $obj, $query_string)
{
$this->query_string = $query_string;
try
{
$this->query_result = mysqli_query($obj, $this->query_string);
echo "Wonderfull! We run the query. <br>";
}
catch (Exception $e)
{
echo "We can't run the query. <br>" . getMessage($e) . "<br>";
}
}
}
?>
Есть index.php
Вот:
<?php
include_once "Connection.php";
include_once "Query.php";
$host = 'localhost';
$connect_user = 'user';
$connect_pass = '';
$db_name = 'coursework';
$db_connection = new Connection($host, $connect_user, $connect_pass, $db_name);
$db_connection->close_connect();
$query_string = 'SELECT * FROM EMPLOYEE';
$db_query = new Query($db_connection, $query_string);
?>
Когда срабатывает код то выдает Warning. Вот такой:
Warning: mysqli_query() expects parameter 1 to be mysqli, object given in /var/www/cro.ua/public_html/Query.php on line 15
Из ошибки понятно, что команда mysqli_query()
не распознает Connection $obj
как mysqli_connect
, как изменить код чтобы он распознал $obj. Да и что бы вы посоветовали изменить в коде?
Вы передали не объект mysqli, а свой объект класа Connection. Попробуйте передавать $db_query = new Query($db_connection -> $connection, $query_string);, и еще нужно поменять доступ к свойству protected $connection класа Connection на public. И не нужно закрывать сразу соединения ($db_connection -> close_connect();), закрывайте после работы с базой.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Моя задача сделать микроразметку для сайта, я нашел нужный файл, хочу прописать микроразметку для контактных данных, однако здесь имеется...
при разборе simplexml файла не обрабатываются строки, в которых есть данные заключенные в угловые кавычки (<>) или знак &Подскажите, плиз, как...