Слйчайно наткнулся на 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), получается как бы на нашей стороне :)



























