[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: какая-то ерунда с БД
nugle
вот скрипт подключения к БД(всё на локальной машине делаю):

<?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

Спустя 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();
Создастся экземпляр класса, вызовется конструктор который в свою очередь установит подключение к мускулу и к вашей бд.

Спустя 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

biggrin.gif
Шило - на мыло ))
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 написал(а):
во блин накрученный скрипт у него.. все классы наследуют друг друга smile.gif
А помойму проще было передать в конструктор клсса 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 написал(а):
спасиб народ
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.