По SQLite не нужна книга, если планируется использовать PDO. Там, где есть PHP, всегда есть и нормальная база данных, и нет смысла пользоваться игрушечной.
По PDO не нужна книга, поскольку это очень маленький API, буквально из 5 функций.
Всё что нужно знать про PDO:
1. Любые переменные должны попадать в запрос
только через плейсхолдер. Поэтому все запросы, в которых участвуют переменные, должны выполняться через prepare/execute: сначала запрос подготавливается через prepare(), причем вместо переменных должны стоять плейсхолдеры, такие
? или такие
:name. А переменные потом передаются через execute.
$pdo = new PDO ( ... );
$stmt = $pdo->prepare("SELECT * FROM users WHERE id=?");
$stmt->execute([$_GET['id']]);
$user = $stmt->fetch();
2. Для получения данных есть три функции
- fetch() получает строку. аналог mysql_fetch_array()
- fetchAll() получает массив строк. Синтаксический сахар для while ($row = mysql_fetch_array()) (эта функция, кстати - единственная, по которой стоит почитать мануал. у неё есть несколько интересных кунштюков)
- fetchColumn() - синтаксический сахар для $row = mysql_fetch_row(); $flag = $row[0]
3. Все остальные тонкости и нюансы описаны по-русски здесь:
www.phpfaq.ru/pdo
4. Особые надстройки над PDO не нужны, но иногда хочется исправить пару неудобных вещей. Например, с помощью www.phpfaq.ru/pdo_wrapper код из п.1 сократится до одной строчки (причем код будет работать отовсюду и сразу):
$user = DB::run("SELECT * FROM users WHERE id=?", [$_GET['id']])->fetch();
5. По любым другим вопросам можно спрашивать меня