Господа - у меня встала необходимость изучить pdo - начал ковырять PHP: <?php class test { protected $id; protected $name; protected $int; public function getId() { return $this->id; } public function setId($id) { $this->id = $id; } public function getName() { return $this->name; } public function setName($name) { $this->name = $name; } public function getInt() { return $this->int; } public function setInt($int) { $this->name = $int; } } $dsn = "pgsql:host=127.0.0.1;dbname=test"; $opt = array( PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC ); $connection = new PDO($dsn,"postgres","123",$opt); $statement = $connection->prepare('SELECT * FROM test'); $statement->execute(); $statement->setFetchMode(PDO::FETCH_CLASS, 'test'); while($row = $statement->fetch()) { echo $row->getId() . ' ' . $row->getName(); } в итоге если я правильно понимаю - сервак выдает клиенту все столбцы а не "id" и "name", а вот на экран выводятся только эти два если использовать PHP: $statement = $connection->prepare('SELECT id,name FROM test'); для чего тогда пишется класс с описанием базы данных ..однако если при использовании его получится чтото типа PHP: $test = new test(); $statement = $connection->prepare('SELECT $test->id,$test->name FROM test'); и вроде как больше букв даже .. да и работать не будет - ведь в переменных id и test сейчас нет ничего далее если использовать такое выражение ( PHP: $statement->setFetchMode(PDO::FETCH_CLASS, 'test'); while($row = $statement->fetch()) { echo $row->getId() . ' ' . $row->getName(); } то например тот же netbeans не поймет что $row это и есть класс "test" и автоподстановка работать не будет - писать опять руками ? так зачем столько манов и учебников пишут что надо использовать именно так .. и никак иначе .. возможно это я непонимающий идиот ах да - опять же мой руководитель требует чтобы в функциях класса были описаны получается не таблицы .. а объекты - например user а в нем каким то образом склеить FIO , INN , Snils ( схему думаю вы видели в соседней теме - где каждое поле это отдельная таблица). но каким образом это сделать я пока не представляю.. описывать все таблицы - в конструкторе везде ставить джоины .. блин вот бред реально
это как бы немного не то .. вот чего я добиваюсь например мне нужно из этой таблицы данные по 2 столбцам примерно так я хочу чтобы было примерно так PHP: $test=new test(); $pdo->prepare ( Select ? from $tablename) while($row = $pdo->fetch($test->id,$test->name)) { echo $1 . ' ' . $2; } вы сами видите на сколько сократился запрос и количество получаемых данных но как такого добиться я не знаю
я даже на это извращение забью --- Добавлено --- почитай книжки для начинающих пхп прогеров, а не лесть в дерби
а при чем тут книжка для начинающих - пдо это совсем не для начинающих .. и как извесно pdo создано для упрошения написания а после того что я вижу в манулах это совсем не упрошение а просто изменение правил написания
doctrine, или всякие реализации в framework'ах, например active record в Yii2, можно посмотреть как они сделаны
а может у кого есть на примете книжка ... мануал .. все что угодно но скажем так .. с продвинутыми примерами - ну не верю я что не сделали такого что все используют select * - при работе с pdo .. или же 3...4 раза в разных вариациях повторяют все нужные имена столбцов - сначала в sql запросе - потом при разборе полей .. а если полей 100 ..
PDO, как известно, сделано для упрощения миграции кода между разными базами данных, в случае, если используемые базы есть в списке адаптеров PDO. --- Добавлено --- Вы PDO и ORM путаете.