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

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

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

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

$m->Users()->GetRec($a);
...
Рейтинг: 0 / 0
Как сделать (полями/методами) класса названия таблиц в базе данных, к которой подключился?
    #37921572
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Смотрите в сторону ORM
...
Рейтинг: 0 / 0
Как сделать (полями/методами) класса названия таблиц в базе данных, к которой подключился?
    #37921574
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну или свою напишите. Ответ на вопрос - да.
...
Рейтинг: 0 / 0
Как сделать (полями/методами) класса названия таблиц в базе данных, к которой подключился?
    #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
Как сделать (полями/методами) класса названия таблиц в базе данных, к которой подключился?
    #37921716
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: php
1.
if ($result = $this->pdo->query("SHOW TABLES"))


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

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

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

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

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


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



А потом чтобы каждый раз не тыкаться в БД просто рассериализовывать это.
...
Рейтинг: 0 / 0
Как сделать (полями/методами) класса названия таблиц в базе данных, к которой подключился?
    #37922137
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нормальные люди пишут это руками в каком нить конфиге, а потом бесплатно получают и автогенерацию базы, и ваот эти объекты и много чегоеще
...
Рейтинг: 0 / 0
Как сделать (полями/методами) класса названия таблиц в базе данных, к которой подключился?
    #37922181
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да нафик их вообще получать...)
...
Рейтинг: 0 / 0
Как сделать (полями/методами) класса названия таблиц в базе данных, к которой подключился?
    #37922392
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ибо удобно?
...
Рейтинг: 0 / 0
Как сделать (полями/методами) класса названия таблиц в базе данных, к которой подключился?
    #37922451
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В чем удобность?
...
Рейтинг: 0 / 0
Как сделать (полями/методами) класса названия таблиц в базе данных, к которой подключился?
    #37922473
Фотография Stasonix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hett,

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

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

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


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