Слйчайно наткнулся на FluentPDO - библиотеку для работы с PDO в PHP. Смысл в том, что библиотека является слоем абстракции между приложением, PDO-расширением PHP и SQL. Потестировав, понял, что удобно. А значит, есть смысл рассказать.
Для начала - ссылки.
- FluentPDO на github: https://github.com/envms/fluentpdo
- Подробная статья о том, как её использовать: https://www.sitepoint.com/getting-started-fluentpdo/
Смысл в том, что от программиста при использовании библиотеки требуется создать PDO-объект для работы с БД, передать его в fluentpdo, и дальше, используя встроенные методы - работать с SQL.
Например:
$pdo = new PDO("mysql:dbname=testdb", "testuser", "testpassword"); $fpdo = new FluentPDO($pdo);
Дальше "всё просто", например, простой select * from mytable where id=$userid будет выглядеть так:
$query = $fpdo->from('mytable')->where('id', $userid);
И чтобы обработать результат:
foreach($query as $row){ print $row['field1'] . ' -- ' . $row['field2'] . '<br>'; }
Если нужны конкретные столбцы, то:
$query = $fpdo->from('mytable') ->select(array('field1', 'field3'))->where('id', $userid);
Ну и чисто для иллюстрации - insert:
$values = array('field1' => 'testval1', 'field2' => 'testval2', 'field3' => 'testval3'); $query = $fpdo->insertInto('mytable')->values(values); $insert = $query->execute();
Также поддерживаются все основные операции, включая разнообразные update, join, delete и т.д.
Кстати, по приведенной выше ссылке примеров сильно больше. Скажу, что я попробовал на тесте FluentPDO - мне понравилось. Как-то упрощает жизнь, с точки зрения того, что не надо писать километровый код и запросы выглядят пологичнее. Ну и вся мощь PDO - типа единого синтаксиса работы с разными БД, безопасности (использование placeholder), получается как бы на нашей стороне :)