<?php
require "config.php";
class db extends config
{
private $connection;
function __constract()
{
$this->open_connection();
// echo "Connection is set";
}
private function open_connection()
{
$this->connection = mysql_connect ($this->DB_HOST,$this->DB_USER, $this->DB_PAS );
if (!$this->connection)
{
die ("Database connection faild:". mysql_error());
}else {
$db_select = mysql_select_db ($this->DB_NAME);
if (!$db_select){
die ("Database connection faild:". 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;
}
}
?>
В конфиге все данные для подключения, а ошибка вот такая
Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in Z:\home\new.ru\www\config\db.php on line 32;
с ней встречаюсь на сколько помню впервые
И и3 моей функции выводит Database query failed
А ошибку выдаёт при такой штуке
$var = new Cmenu();
$var2 = array();
$var2 = $var->print_menu();
$var->k_debug($var2);
Спустя 3 минуты, 44 секунды (8.11.2010 - 21:00) T1grOK написал(а):
дайте в студию листинг конфига
Спустя 24 секунды (8.11.2010 - 21:00) nugle написал(а):
<?php
require_once "../debug.php" ;
class config{
var $BASE_URL = "new.ru"; // URL сайта, URL site
var $DB_HOST = "localhost"; // имя хоста, name host
var $DB_USER = "root"; // user БД, user database
var $DB_PASS = ""; // пароль для user, password for user
var $DB_NAME = "zumanaha"; // имя БД, name database
}
?>
Файл debug
<?php
class debug{
public function k_debug($arr){
echo "<pre>";
print_r($arr);
echo "</pre>";
}
}
?>
Спустя 4 минуты, 29 секунд (8.11.2010 - 21:05) amazing написал(а):
Ученики k0stix'a)
Спустя 1 минута, 42 секунды (8.11.2010 - 21:07) T1grOK написал(а):
Наверное из видеороуроков "Объектно-оринтированный подход"...А где у вас создается экземпляр класса??? Имею ввиду подключения
Спустя 2 минуты, 31 секунда (8.11.2010 - 21:09) T1grOK написал(а):
Могу ошибаться но разве в конце класса db не должна быть такая строчка:
$db = new db(); - чтобы при инклудинге сразу создавался экземпляр класса для работы с MYSQL
$db = new db(); - чтобы при инклудинге сразу создавался экземпляр класса для работы с MYSQL
Спустя 7 секунд (8.11.2010 - 21:09) nugle написал(а):
amazing, это ра3ве плохо...
<?php
require_once "../models/m_menu.php";
class Cmenu extends Mmenu
{
function print_menu()
{
$res = $this->return_menu();
while($row = mysql_fetch_assoc($res)){
$mname[$row['id']] = $row['menu_name'];
}
return $mname;
}
}
?>
<?php
require_once "../config/db.php";
class Mmenu extends db
{
function return_menu()
{
$sql = "select menu_name, id from pages";
$res = $this->sql($sql);
return $res;
}
}
?>
Спустя 2 минуты, 10 секунд (8.11.2010 - 21:11) nugle написал(а):
T1grOK
не понял вас до конца...
не понял вас до конца...
Спустя 10 минут, 34 секунды (8.11.2010 - 21:22) T1grOK написал(а):
После класса db нужно добавить строку:
$db = new db();
Создастся экземпляр класса, вызовется конструктор который в свою очередь установит подключение к мускулу и к вашей бд.
$db = new db();
Создастся экземпляр класса, вызовется конструктор который в свою очередь установит подключение к мускулу и к вашей бд.
Спустя 2 минуты, 42 секунды (8.11.2010 - 21:25) T1grOK написал(а):
Еще одно....конструктор пишется conctruct, если не помните как пишется это слово лучше создавайте метод именем класса - это и будет конструктор
Спустя 4 минуты, 41 секунда (8.11.2010 - 21:29) nugle написал(а):
ёшкин кошкин спс, добавил и всё ок спс биг
Спустя 17 минут, 4 секунды (8.11.2010 - 21:46) Invis1ble написал(а):
T1grOK
Цитата |
конструктор пишется conctruct |
Шило - на мыло ))
public function __construct()
Спустя 4 минуты, 18 секунд (8.11.2010 - 21:51) nugle написал(а):
Invis1ble, ведь не оби3ательно ставить паблик, он ж по умолчанию..
Спустя 5 минут, 7 секунд (8.11.2010 - 21:56) Invis1ble написал(а):
nugle
ну это да, просто указывать область видимости (или как оно там правильно называется) - хороший тон
ну это да, просто указывать область видимости (или как оно там правильно называется) - хороший тон
Спустя 1 минута, 9 секунд (8.11.2010 - 21:57) Sanchopansa написал(а):
во блин накрученный скрипт у него.. все классы наследуют друг друга
А помойму проще было передать в конструктор клсса db параметры подключения .. типа так
А помойму проще было передать в конструктор клсса db параметры подключения .. типа так
class db
{
private $connection;
function __construct($options)
{
$this->open_connection($options);
// echo "Connection is set";
}
private function open_connection($options)
{
$this->connection = mysql_connect ($options->DB_HOST,$options->DB_USER, $options->DB_PAS );
if (!$this->connection)
{
die ("Database connection faild:". mysql_error());
}else {
$db_select = mysql_select_db ($options->DB_NAME);
if (!$db_select){
die ("Database connection faild:". 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;
}
}
$config = new config();
$db = new db($config);
?>
Спустя 3 минуты, 58 секунд (8.11.2010 - 22:01) Invis1ble написал(а):
Sanchopansa
как по мне - так это вообще все извращения. Можно обойтись и императивным кодом, имхо
как по мне - так это вообще все извращения. Можно обойтись и императивным кодом, имхо
Спустя 1 минута, 49 секунд (8.11.2010 - 22:03) Sanchopansa написал(а):
Invis1ble
гыыы..
гыыы..
Спустя 6 минут, 26 секунд (8.11.2010 - 22:09) Invis1ble написал(а):
Sanchopansa
Я в том смысле, что ооп тут ни к чему. Функцию можно создать - это понятно..
Я в том смысле, что ооп тут ни к чему. Функцию можно создать - это понятно..
Спустя 12 минут, 50 секунд (8.11.2010 - 22:22) nugle написал(а):
спасиб народ