PDO комплексный режим извлечения - PullRequest
1 голос
/ 29 января 2011

Просто любопытно, если, скажем, у меня есть sql, возвращающий данные в этой структуре

array(
    0 => array(
        'article.id' => '1001',
        'article.title' => 'lorem ipsum',
        'article.body' => 'dolor sit',
        'user.id' => '2012',
        'user.name' => 'foo',
        'user.email' => 'foo@example.com'
    ),
    1 => array(
        'article.id' => '1001',
        'article.title' => 'lorem ipsum',
        'article.body' => 'dolor sit',
        'user.id' => '2013',
        'user.name' => 'bar',
        'user.email' => 'bar@example.com'
    )
);

Как вы можете видеть, обе на самом деле относятся к одной и той же статье, но написаны совместно двумя разными пользователями, без использования какой-либо другой библиотеки ORM / DB и просто простого PDO, как бы вы сделали данные, возвращенные из базы данных, в эту форму:

array(
    0 => array(
        'article.id' => '1001',
        'article.title' => 'lorem ipsum',
        'article.body' => 'dolor sit',
        'user' => array(
            0 => array(
                'user.id' => '2012',
                'user.name' => 'foo',
                'user.email' => 'foo@example.com'
            ),
            1 => array(
                'user.id' => '2013',
                'user.name' => 'bar',
                'user.email' => 'bar@example.com'
            )
        ),
    )
);

И какая библиотека БД (если возможно, без ORM) может сделать это без особых усилий?

Ответы [ 2 ]

1 голос
/ 29 января 2011

Вместо того, чтобы выполнять JOIN для извлечения как статьи, так и пользовательских данных в одном запросе, почему бы не выполнить два отдельных запроса: один для получения статей, а второй для получения пользовательских данных, которые имеют отношение к статьям? Это, безусловно, проще и, вероятно, более эффективно.

0 голосов
/ 29 января 2011

Не рекомендуется использовать этот метод в классе PDO.PDO работает с БД и должен возвращать структурированные данные.Вы можете написать свою собственную функцию, которая будет выполнять манипуляции с возвращаемым массивом.

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