[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: connect_database
larionov_e
Недавно начал осваивать ООП, подскажите в чем ошибка есть отдельный класс подключения к бд:

<?php

class
Database
{
var $SERVER = "localhost";
var $USER = "root";
var $PASS = "";
var $NAMEb = "test";

function __construct()
{


}


public function startup()
{


mysql_connect($this->SERVER, $this->USER, $this->PASS);

mysql_query("SET NAMES cp1251");

mysql_select_db($this->NAMEb);

}
}


?>


и вызов его метода в модели


class Model
{
public $name;
public $content;

function __construct()
{


}


public function add_post($name, $content)
{
[color=red]Database::startup();[/color]

$name = trim($name);
$content = trim($content);



$this->name = htmlspecialchars($name);
$this->content = htmlspecialchars($content);
$query1 = "INSERT INTO test1 (name, content) VALUES ('%s', '%s')";
$query = sprintf($query1, $this->name, $this->content);

mysql_query($query) or die(mysql_error());

}
}




Пишет: No database selected.
Хотя всё стандартно указано...может не правильно вызываю ?




Спустя 13 минут, 40 секунд (29.08.2012 - 20:47) Игорь_Vasinsky написал(а):
мускул коннектиться одним запросом
выбор бд 1 запрос
запрос в бд - один запрос

3 запроса

нафига тебе тут класс?


это не тот момент, которому будет удобен класс

Спустя 13 минут, 31 секунда (29.08.2012 - 21:00) alex455 написал(а):
Наверное, это сделано для освоения ООП, как пример.

Спустя 2 минуты, 52 секунды (29.08.2012 - 21:03) Игорь_Vasinsky написал(а):
ты сначала тогда про функции почитай, по практикуй.

методы - те же функции

Спустя 6 минут, 47 секунд (29.08.2012 - 21:10) larionov_e написал(а):
Да, пример был для освоения, про методы = функциям я знаю...
Я так и не понял в чем проблема!? В конкретном примере..объясните пожалуйста

Спустя 5 минут, 37 секунд (29.08.2012 - 21:15) johniek_comp написал(а):
напиши там так
public static function startup()

Спустя 14 минут, 29 секунд (29.08.2012 - 21:30) Invis1ble написал(а):
а я бы посоветовал сменить источник, если в нем написано, что нужно писать var. На дворе 2012 год, PHP 5.4.x

Спустя 2 часа, 22 минуты, 41 секунда (29.08.2012 - 23:53) larionov_e написал(а):
сменил на static
поменял с var на паблик зону видимости...

результат тот же No database selected =(

Спустя 6 часов, 40 минут, 25 секунд (30.08.2012 - 06:33) Игорь_Vasinsky написал(а):
тебя не смущает ?

function __construct()
{


}

Спустя 18 минут, 34 секунды (30.08.2012 - 06:51) Invis1ble написал(а):
На самом деле ошибка в том, что ТС начал писать код не прочитав или не поняв основы теории.
метод startup() не статический, но в коде первого поста он вызывается как статический. Отсюда и проблемы. Дальше, я думаю слова "сменил на static" касаются только смены метода на статический, но при этом использующиеся свойства SERVER, USER, PASS и NAMEb не были сменены на статические.
Да, и создавать пустые конструкторы не имеет никакого смысла в данном случае.

Спустя 5 часов, 5 минут, 11 секунд (30.08.2012 - 11:57) lodas написал(а):
Вот как можно реализовать подключение к БД, тут оно будет подключаться один раз:
<?php 
define ("SERVERS", "localhost");
define ("USER", "root");
define ("PASSWORD", "");
define ("DB_NAME", "test");//
class Database
{
private static $news_connect;
private static $statys;
private function __construct()
{
if(empty(self::$statys))
{
mysql_connect(SERVERS,USER,PASSWORD) or die (mysql_error());
self::$statys=1;
}
else echo "Подключение уже созданно";
}

protected function get_connect()
{
self::$news_connect=new Database();
return self::$news_connect;
}

}


class Model extends Database
{
// public $name;
// public $content;


function __construct()
{
$db=parent::get_connect();
}

/* public function add_post($name, $content)
{
$name = trim($name);
$content = trim($content);
$this->name = htmlspecialchars($name);
$this->content = htmlspecialchars($content);
$query1 = "INSERT INTO test1 (name, content) VALUES ('%s', '%s')";
$query = sprintf($query1, $this->name, $this->content);

mysql_query($query) or die(mysql_error());

} */

}
$Model=new Model() ;
?>

Функцию add_post не проверял
Быстрый ответ:

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