Выдает такая ошыбка Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in T:\home\virtual\prime\serfeli\config\db.php on line 20 Database query failed config.php PHP: <?php class Config{ var $BASE_URL = "localhost" ; var $DB_HOST = "localhost" ; var $DB_USER = "yeni" ; var $DB_PASS = "yeni" ; var $DB_NAME = "yeni" ; } ?> db.php PHP: <? require_once "config.php"; class Db extends Config { private $connection; private function open_connection () { $connection = mysql_connect ($this->DB_HOST, $this->DB_USER, $this->DB_PASS); if (!$connection) { die ("DB connection failed".mysql_error ()); } else { $db_select = mysql_select_db ($this->DB_NAME); if (!$db_select) { die ("DB selection failed".mysql_error ()) ; } } mysql_query ("set names utf8") or die ("set names utf8 failed") ; } public function sql ($query) { $result = mysql_query ($query, $this->connection); if (!$result) { die ("Database query failed".mysql_error ()) ; } return $result; } } $db = new Db; $db->sql("SELECT*FROM menyu") ; ?>
переменная $connection - доступна только внутри функции в которой объявлена. а тут PHP: $result = mysql_query ($query, $this->connection); переменная глобальная для класса. $connection не равна $this->connection и почем вы решили использовать линк на соединение но в выборе базы не используете линк, будут ошибки при по пытке создать несколько соединений. то же самое в задании кодировки. попробуйте переписать так PHP: private function open_connection () { $this->connection = mysql_connect ($this->DB_HOST, $this->DB_USER, $this->DB_PASS); if (!$this->connection) { die ("DB connection failed".mysql_error ()); } else { $db_select = mysql_select_db ($this->DB_NAME, $this->connection); if (!$db_select) { die ("DB selection failed".mysql_error ()) ; } } mysql_query ("set names utf8", $this->connection) or die ("set names utf8 failed") ; }
а где вы вызываете функцию open_connection ? я вижу только её объявление, но не где она не вызывается, а значит и соединения с БД не будет. ps не используйте mysql_connect и другие функции, возможно в скором времени они вообще перестанут работать. используйте pdo или mysqli