another_dream
@another_dream
Backend-разработчик, Laravel/ZF2/Yii2

Как сделать запрос к базе в этом случае?

Файл db.php :
require 'config.php';
/**
* 
*/
class dbConnect
{
	protected $table = '';


	function __construct($table)
	{
		$this->table = $table;
	}

	public function dbConnect() {
		$db = new mysqli (DB_HOST, DB_USER, DB_PASS) or die (' WRONG CONNECTION PARAMETERS');
		$db->select_db($this->table) or die (' WRONG TABLE');
		$db->set_charset('utf-8');
	}
}

?>

Соединяется с базой данных.
Есть index.php, в котором создается экземпляр класса, и соединение с базой test :
<?php  
require 'db.php';
	#DATABASE CONNECT;
$testConnect = new dbConnect('test');
$testConnect->dbConnect();
?>

Теперь вопрос -- как мне обратиться к экземпляру $db для запроса(query)?
В идеале должно быть $db->query, но, видимо, где-то туплю. Спасибо
  • Вопрос задан
  • 2913 просмотров
Решения вопроса 2
metamorph
@metamorph
Либо добавьте в dbConnect что-то типа return $db, и потом, соответственно, $db = $testConnect->dbConnect();
либо
public $db = '';
...
$this->db = new mysqli(...
$testConnect->db->...
Ответ написан
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Всё верно возвращает. Смотрите описание mysqli::query, при ошибке возвращается FALSE, для успешных запросов SELECT, SHOW, DESCRIBE или EXPLAIN возвращается объект mysqli_result, для остальных успешных запросов - TRUE.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
another_dream
@another_dream Автор вопроса
Backend-разработчик, Laravel/ZF2/Yii2
И сразу возник еще один вопрос.
Сделал:
....
public function dbConnect() {
        ...
        ...
        return $db;
	}
}

и далее
$db = $testConnect->dbConnect();
$sql = $db->query('SELECT name FROM qwert');
print_r($sql);

С чего вдруг SQL-запрос возвращает:
mysqli_result Object ( [current_field] => 0 [field_count] => 1 [lengths] => [num_rows] => 1 [type] => 0 )
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы