<?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 запроса
нафига тебе тут класс?
это не тот момент, которому будет удобен класс
выбор бд 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 =(
поменял с 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 не были сменены на статические.
Да, и создавать пустые конструкторы не имеет никакого смысла в данном случае.
метод startup() не статический, но в коде первого поста он вызывается как статический. Отсюда и проблемы. Дальше, я думаю слова "сменил на static" касаются только смены метода на статический, но при этом использующиеся свойства SERVER, USER, PASS и NAMEb не были сменены на статические.
Да, и создавать пустые конструкторы не имеет никакого смысла в данном случае.
Спустя 5 часов, 5 минут, 11 секунд (30.08.2012 - 11:57) lodas написал(а):
Вот как можно реализовать подключение к БД, тут оно будет подключаться один раз:
Функцию add_post не проверял
<?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 не проверял