Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Как сделать (полями/методами) класса названия таблиц в базе данных, к которой подключился? / 21 сообщений из 21, страница 1 из 1
18.08.2012, 09:09:00
    #37921529
Stasonix
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать (полями/методами) класса названия таблиц в базе данных, к которой подключился?
Я пользуюсь PDO, не знаю чем это может помочь в данной ситуации, но все же. В общем реально ли сделать такое:

Имена таблиц подключенной базы данных должны стать (полями/методами), и иметь свои методы (поля).

Напр. (допустим мы подключились к бд test и в ней есть таблица Users)

Код: php
1.
2.
3.
$m = new MDB();

$m->Users()->GetRec($a);
...
Рейтинг: 0 / 0
18.08.2012, 11:56:22
    #37921572
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать (полями/методами) класса названия таблиц в базе данных, к которой подключился?
Смотрите в сторону ORM
...
Рейтинг: 0 / 0
18.08.2012, 11:57:21
    #37921574
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать (полями/методами) класса названия таблиц в базе данных, к которой подключился?
Ну или свою напишите. Ответ на вопрос - да.
...
Рейтинг: 0 / 0
18.08.2012, 11:58:46
    #37921577
Stasonix
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать (полями/методами) класса названия таблиц в базе данных, к которой подключился?
Hett,

уже написал:

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
class MDB extends DB {

	// current table
	protected $tbl = "";

	function __construct(){
	
		parent::__construct();
		
	}
	
	
	public function __call( $method, $param )
	{
		
		$tables = array();
		
		if ($result = $this->pdo->query("SHOW TABLES"))
		{
		
			while ($row = $result->fetch(PDO::FETCH_NUM))
			{
			
				$tables[] = $row[0];
			
			}
		
		}
		
		if (in_array($method,$tables))
		{
		
			$this->tbl = $method;
		
			return $this;
			
		}
		else
		{
		
			return FALSE;
		
		}
	
	}



Конечно опасненько если есть метод такой как название таблицы уже.
...
Рейтинг: 0 / 0
18.08.2012, 17:55:08
    #37921716
ScareCrow
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать (полями/методами) класса названия таблиц в базе данных, к которой подключился?
Код: php
1.
if ($result = $this->pdo->query("SHOW TABLES"))


в реальной жизни неприменимо, ибо тормозит немеряно.
...
Рейтинг: 0 / 0
18.08.2012, 18:03:36
    #37921717
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать (полями/методами) класса названия таблиц в базе данных, к которой подключился?
Кэшировать... Да и в данной реализации вызов этого запроса возможен несколько раз, что весьма расточительно.
...
Рейтинг: 0 / 0
18.08.2012, 19:45:59
    #37921771
Stasonix
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать (полями/методами) класса названия таблиц в базе данных, к которой подключился?
Hett,

И каким же [ чем-то ] это кэшировать не подскажите?
...
Рейтинг: 0 / 0
18.08.2012, 21:59:03
    #37921819
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать (полями/методами) класса названия таблиц в базе данных, к которой подключился?
В чем конкретно вопрос? Как сеарилзовать массив и записать записать файл на диск или как использовать мемкеш?
...
Рейтинг: 0 / 0
18.08.2012, 22:21:15
    #37921833
Stasonix
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать (полями/методами) класса названия таблиц в базе данных, к которой подключился?
Hett, угу.
...
Рейтинг: 0 / 0
18.08.2012, 22:22:04
    #37921834
Stasonix
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать (полями/методами) класса названия таблиц в базе данных, к которой подключился?
Мемкэш. (Чсн говоря вроде еще не сталкивался)
...
Рейтинг: 0 / 0
18.08.2012, 22:23:14
    #37921837
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать (полями/методами) класса названия таблиц в базе данных, к которой подключился?
...
Рейтинг: 0 / 0
18.08.2012, 23:22:00
    #37921878
Stasonix
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать (полями/методами) класса названия таблиц в базе данных, к которой подключился?
Hett,

А я вот подумал запихнуть serialize в сессию, бредовая идея?
...
Рейтинг: 0 / 0
19.08.2012, 10:06:41
    #37921993
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать (полями/методами) класса названия таблиц в базе данных, к которой подключился?
1. сессия и так сериализуется, зачем дополнительно еще это делать?
2. У каждого пользователя будет в сессии один и тот же кеш, зачем?
...
Рейтинг: 0 / 0
19.08.2012, 10:25:20
    #37922001
Stasonix
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать (полями/методами) класса названия таблиц в базе данных, к которой подключился?
Hett,

Да, тогда в файл?
...
Рейтинг: 0 / 0
19.08.2012, 10:27:46
    #37922002
Stasonix
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать (полями/методами) класса названия таблиц в базе данных, к которой подключился?
Hett,

Я имею имею в виду сами поля сериализовать:


Код: php
1.
$stables = serialize($tables);



А потом чтобы каждый раз не тыкаться в БД просто рассериализовывать это.
...
Рейтинг: 0 / 0
19.08.2012, 15:58:21
    #37922137
ScareCrow
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать (полями/методами) класса названия таблиц в базе данных, к которой подключился?
нормальные люди пишут это руками в каком нить конфиге, а потом бесплатно получают и автогенерацию базы, и ваот эти объекты и много чегоеще
...
Рейтинг: 0 / 0
19.08.2012, 17:02:28
    #37922181
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать (полями/методами) класса названия таблиц в базе данных, к которой подключился?
Да нафик их вообще получать...)
...
Рейтинг: 0 / 0
20.08.2012, 02:22:50
    #37922392
ScareCrow
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать (полями/методами) класса названия таблиц в базе данных, к которой подключился?
ибо удобно?
...
Рейтинг: 0 / 0
20.08.2012, 07:44:35
    #37922451
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать (полями/методами) класса названия таблиц в базе данных, к которой подключился?
В чем удобность?
...
Рейтинг: 0 / 0
20.08.2012, 08:36:09
    #37922473
Stasonix
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать (полями/методами) класса названия таблиц в базе данных, к которой подключился?
Hett,

Я не знаю что вы там задумали на счет удобно или нет, но один раз обратиться к бд, а потом хранить их в т.н. мемкэше вполне приемлимо, в том случае если походу дела не создавать конечно же новых таблиц ( я так понимаю это частные случае, но они есть). Еще один факт меня пугает так это а что делать если вдруг такой метод уже существует как название таблицы, как тогда выкрутиться?
...
Рейтинг: 0 / 0
20.08.2012, 15:45:46
    #37923185
Ренат
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать (полями/методами) класса названия таблиц в базе данных, к которой подключился?
StasonixHett,

Я не знаю что вы там задумали на счет удобно или нет, но один раз обратиться к бд, а потом хранить их в т.н. мемкэше вполне приемлимо, в том случае если походу дела не создавать конечно же новых таблиц ( я так понимаю это частные случае, но они есть). Еще один факт меня пугает так это а что делать если вдруг такой метод уже существует как название таблицы, как тогда выкрутиться?
тогда магия не сработает и всей сломаеться. Юзайте вместо __call лучше __get. Проще как то.

ScareCrowнормальные люди пишут это руками в каком нить конфиге, а потом бесплатно получают и автогенерацию базы, и ваот эти объекты и много чегоеще
Ага чуствуеться рука доктрины с юмэлками =) А мне больше нравиться когда орм сам подхватывает структуру базы, кеширует ее и сам подстраиваеться
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Как сделать (полями/методами) класса названия таблиц в базе данных, к которой подключился? / 21 сообщений из 21, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]