[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Первый мною написанный класс
nugle
Ну собственно первый класс пытался написать, ну и как же без ошибок
Warning: mysql_query() [function.mysql-query]: Access denied for user 'ODBC'@'localhost' (using password: NO) in Z:\home\test1.ru\www\db.php on line 31

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in Z:\home\test1.ru\www\db.php on line 31

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in Z:\home\test1.ru\www\db.php on line 33

<?php

class
ConnectDB{

public $dbname;
public $dbhost;
public $dbuser;
public $dbpassword;

public function connect()
{
mysql_connect($dbhost, $dbuser, $dbpassword);
mysql_select_db($dbname);
}


}


$connect = new ConnectDB;

$connect->dbname = 'test';
$connect->dbhost = 'localhost';
$connect->dbuser = 'root';
$connect->dbpassword = '';

print_r($connect);

$sql = 'select id from table where id < 3';
$result = mysql_query($sql);

while($row = mysql_fetch_assoc($reult))
{
echo $row['id'];
}


Мне кажется всё верно!в чём ошибка!



Спустя 2 минуты, 31 секунда (25.03.2011 - 20:11) sharki написал(а):
$connect = new ConnectDB();

Спустя 3 минуты, 44 секунды (25.03.2011 - 20:15) nugle написал(а):
я и так пробовал, тоже самое!

Спустя 1 минута, 4 секунды (25.03.2011 - 20:16) sharki написал(а):
А как насчет вызвать свою функцию connect() ?

Спустя 27 секунд (25.03.2011 - 20:16) Trianon написал(а):
метод connect никто не вызывает.
переменная $reult неопределена.



Спустя 43 секунды (25.03.2011 - 20:17) sharki написал(а):
       $connect = new ConnectDB();

$connect->dbname = 'test';
$connect->dbhost = 'localhost';
$connect->dbuser = 'root';
$connect->dbpassword = '';

$connect->connect();

Спустя 8 секунд (25.03.2011 - 20:17) nugle написал(а):
$connect->connect(); ? так по две таких ошибки

Спустя 59 секунд (25.03.2011 - 20:18) ZSH написал(а):
А где подключение к БД(вызов метода подключения)?

Спустя 4 секунды (25.03.2011 - 20:18) sharki написал(а):
class ConnectDB{

public $dbname;
public $dbhost;
public $dbuser;
public $dbpassword;

public function connect()
{
mysql_connect($this->dbhost, $this->dbuser, $this->dbpassword);
mysql_select_db($this->dbname);
}


}


$connect = new ConnectDB();

$connect->dbname = 'test';
$connect->dbhost = 'localhost';
$connect->dbuser = 'root';
$connect->dbpassword = '';

$connect->connect();

Спустя 3 минуты, 41 секунда (25.03.2011 - 20:22) nugle написал(а):
sharki
Catchable fatal error: Object of class ConnectDB could not be converted to string in Z:\home\test1.ru\www\db.php on line 12
ZSH
как это осуществить?

Спустя 46 секунд (25.03.2011 - 20:23) alex12060 написал(а):

<?php

class
config

{

var $host = 'localhost';
var $user = 'root';
var $passw = '';
var $db = 'test';

}

class db extends config {

protected $connection;

function __construct() {

$this->connect();

}

private function connect() {

$connection = mysql_connect($this->host, $this->user, $this->passw) or die('<p style="margin: 10px; color: #ff0000">Невозможно соединиться с Базой Данных.</p>');
$db = mysql_select_db($this->db, $connection) or die('<p style="margin: 10px; color: #ff0000">Невозможно выбрать базу.</p>');

return $connection;

}
}


$db = new db;

$sql = 'select id from table where id < 3';
$result = mysql_query($sql);

while($row = mysql_fetch_assoc($result))
{
echo $row['id'];
}

Спустя 2 минуты, 45 секунд (25.03.2011 - 20:25) nugle написал(а):
alex12060

тоже Catchable fatal error: Object of class ConnectDB could not be converted to string in Z:\home\test1.ru\www\db.php on line 12

Спустя 8 минут, 48 секунд (25.03.2011 - 20:34) alex12060 написал(а):
Пробуй мой.
Вообще, задавать значения БД в скрипте самом - лишняя тягота. Лучше класс выделить отдельно, обозвав конфигом.

Спустя 3 минуты, 14 секунд (25.03.2011 - 20:37) T1grOK написал(а):
Всю красоту ООП испортил.

class ConfigDB{
protected $dbname = 'test';
protected $dbhost = 'localhost';
protected $dbuser = 'root';
protected $dbpassword = '';
}

class ConnectDB extends ConfigDB{

public function __construct()
{
mysql_connect($this->dbhost, $this->dbuser, $this->dbpassword);
mysql_select_db($this->dbname);
}


}


$connect = new ConnectDB;

$result = mysql_query($sql);
while($row = mysql_fetch_assoc($result))
{
echo $row['id'];
}

Ток лучше по синглтону организовать во избежание разногласий.

alex12060 - повторяешь ошибку автора $reult -> $result. Блин пока малевал букавки ты уже намалевал классы))

Спустя 1 минута, 42 секунды (25.03.2011 - 20:39) alex12060 написал(а):
T1grOK

Я полностью переправил свой код)
Сначала не вникал вообще...

Спустя 11 минут, 32 секунды (25.03.2011 - 20:51) nugle написал(а):
alex12060
пишет Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in Z:\home\test1.ru\www\db.php on line 39
сама ошибка конечно ясна и вроде всё верно, таблица, поле, всё правильно!
T1grOK
ну как я написал это мой первый класс буду учиться!

Спустя 2 минуты, 41 секунда (25.03.2011 - 20:53) T1grOK написал(а):
у тебя mysql_fetch_assoc($reult), а надо mysql_fetch_assoc($result) и ошибки не будет

Спустя 2 минуты, 7 секунд (25.03.2011 - 20:56) nugle написал(а):
T1grOK
это я поправил, перед тем как написал!

Спустя 2 минуты, 19 секунд (25.03.2011 - 20:58) alex12060 написал(а):
Ошибку исправь, с reult на result

Должно работать...

Спустя 6 минут, 47 секунд (25.03.2011 - 21:05) T1grOK написал(а):
Результат пустой, проверь количество записей результата mysql_num_rows($result)

Спустя 1 минута, 49 секунд (25.03.2011 - 21:06) nugle написал(а):
ничего не выводит, никакой запрос ничего не выводит!

Спустя 50 секунд (25.03.2011 - 21:07) alex12060 написал(а):
nugle

Быть такого не может. Покажи свой код.

Спустя 1 минута, 47 секунд (25.03.2011 - 21:09) nugle написал(а):
$sql = 'select * from table';
$result = mysql_query($sql);


while($row = mysql_fetch_assoc($result))
{
echo $row['id'];
}

Спустя 2 минуты, 7 секунд (25.03.2011 - 21:11) alex12060 написал(а):
* весь код *
С классом.

Спустя 1 минута, 10 секунд (25.03.2011 - 21:12) nugle написал(а):
<?php

class
config

{

var $host = 'localhost';
var $user = 'root';
var $passw = '';
var $db = 'test';

}

class db extends config {

protected $connection;

function __construct() {

$this->connect();

}

private function connect() {

$connection = mysql_connect($this->host, $this->user, $this->passw) or die('<b style="margin: 10px; color: #ff0000">Невозможно соединиться с Базой Данных.</b>');
$db = mysql_select_db($this->db, $connection) or die('<b style="margin: 10px; color: #ff0000">Невозможно выбрать базу.</b>');;

return $connection;

}
}


$db = new db;

$sql = 'select * from table';
$result = mysql_query($sql);


while($row = mysql_fetch_assoc($result))
{
echo $row['id'];
}

Спустя 3 минуты, 1 секунда (25.03.2011 - 21:15) alex12060 написал(а):
nugle

У меня лично все окей. Я не знаю что у тебя там...
У тебя точно пхп не 4 версии?

Спустя 8 минут, 25 секунд (25.03.2011 - 21:24) nugle написал(а):
ага, 3 версия))

плюс за помощь!
мне всё равно главное было чтобы класс работал!

Спустя 2 минуты, 57 секунд (25.03.2011 - 21:27) alex12060 написал(а):
Цитата
ага, 3 версия))


Сарказм?)

Спустя 1 минута, 29 секунд (25.03.2011 - 21:28) Basili4 написал(а):
T1grOK
Ох не нравится мне эта затея наследовать от класса с инфой о соединении а если треба работать с двумя базами ???

Спустя 4 минуты, 31 секунда (25.03.2011 - 21:33) T1grOK написал(а):
Дописать метод:

....
public function selectdb($db){
mysql_select_db($db);
}
....

По моему с различными БД не так уж часто приходится работать. Да и вообще все не предусмотреть, а если что надо, всегда можно дописать.

Спустя 9 минут, 33 секунды (25.03.2011 - 21:42) nugle написал(а):
alex12060
да я думаю не у кого 4 не стоит, к тому же у меня денвер!а унего 5 версия

Спустя 9 минут, 35 секунд (25.03.2011 - 21:52) nugle написал(а):
с другими таблицами работает, спасибо!

Спустя 2 дня, 12 часов, 19 минут, 9 секунд (28.03.2011 - 09:11) linker написал(а):
Ну и я свою лепту внесу

class Config
{
protected $__Config = array();

public function __get($ParamName)
{
return isset($this->__Config[$ParamName]) ? $this->__Config[$ParamName] : null;
}

public function __isset($ParamName)
{
return isset($this->__Config[$ParamName]);
}

public function __construct($Location)
{
$this->__Config = parse_ini_file($Location, true);
}
}


class ConnectDB
{
protected static $__Instance = null;
protected $__Config = null;
protected $__Handler = null;

public static function Get()
{
return self::$__Instance instanceof self ? self::$__Instance : self::$__Instance = new self();
}

protected function __construct()
{
$this->__Config = new Config('./dbconf.ini');
$this->Connect();
}

protected function __clone() {}

public function Connect()
{
$this->__Handler = mysql_connect($this->__Config->dbhost, $this->__Config->dbuser, $this->__Config->dbpassword);
if (isset($this->__Config->dbname))
$this->Db();
}

public function Db()
{
mysql_select_db($this->__Config->dbname, $this->__Handler);
}

public function Query($Sql)
{
return mysql_query($Sql, $this->__Handler);
}

...
}

$Connect = ConnectDB::Get();
...

Спустя 10 часов, 41 минута, 14 секунд (28.03.2011 - 19:52) alex12060 написал(а):
linker

Для некоторых просто, для некоторых - сложно smile.gif

ЗЫ. Ваш пример не сработает верно, так как название потомка отличается в extends

Спустя 1 час, 10 минут, 4 секунды (28.03.2011 - 21:02) nugle написал(а):
linker - голова!
Если бы понять что ты написал!

Спустя 13 часов, 5 минут, 41 секунда (29.03.2011 - 10:08) linker написал(а):
alex12060
Тьфу, копи-пастнул просто, чтоб не писать с нуля, вот и забыл лишнее затереть.

Спустя 8 дней, 5 часов, 18 минут, 43 секунды (7.04.2011 - 15:27) Doc написал(а):
linker,
Как вы ini файлы закрываете от просмотра в браузере?

Спустя 4 дня, 34 минуты, 13 секунд (11.04.2011 - 16:01) linker написал(а):
Я их не использую.

Спустя 29 дней, 7 часов, 15 минут, 19 секунд (10.05.2011 - 23:16) Th!nk3r написал(а):
Что бы защитить от просмотра ini фалы нужно в файле .htaccess прописать вот эти строки.
<FilesMatch "\.(conf|ini|tpl)$">
Order allow,deny
</FilesMatch>
Быстрый ответ:

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