Ответов: 2 Просмотров: 1168
|
Добрый день. помогите пожалуйста разобраться в ситуации. Имеется приложение с MVC архитектурой. Написал класс для подключения к БД MySQL
PHP:
скопировать код в буфер обмена
class dbMysql { private $connection; public function connect($host, $user, $pass, $db) { if ($this->connection) { } return $this->connection; } public function disconnect() { if ($this->connection) { } } }
Данный класс только создает и разрывает подключение к БД и возвращает линк на подключение, который будет в дальнейшем использовать вне этого класса для выполнения запросов к БД. Вот так я это делаю в модели (код я упростил):
PHP:
скопировать код в буфер обмена
class Model_wealth extends Model { protected $db; protected $dbLink; public function __construct() { $this->db = new dbMysql(); $this->dbLink = $this->db->connect('localhost', 'user', 'password', 'db'); } function __destruct() { $this->db->disconnect(); } public function get_data() { $query = mysql_query("SELECT rajons.id, rajons.name FROM rajons right join (select rajon_id from building group by rajon_id) as tmp ON rajons.id=tmp.rajon_id", $this->dbLink); for ($i=0; $i<$cnt; $i++) { $res[$id] = $name; } return $res; } }
При выполнении метода get_data() не выполняется sql запрос. выводит ошибку Warning: mysql_query(): 11 is not a valid MySQL-Link resource . Вывод Var_dump($this->dbLink) показывает resource id='11' type='Unknown', хотя если сдампить это значение в конструкторе модели, то оно нормальное и равняется resource id='11' type='mysql link'. Так же, если выполнить запрос к БД в конструкторе модели, то он выполнится успешно. Выходит, что линк где то теряется. Помогите разобраться, что я делаю не так... |