up to the handler usual way.
That's no
moon English.
Do not use try..catch to report errors.
Думаю, стоит акцентировать "report"…
(optional) Create an error handler using set_error_handler() function if you want more flexible error reporting.
Пардон, но какое ЭТО имеет отношение к PDO в частности и к ловле исключений вообще?…
Убрать наф-наф.
Должно быть "$stmt = $pdo->prepare" по идее. Форматтер съел код?
Ты пишешь "all values will be bound as strings" и тут же "Will produce a query
UPDATE users SET param = NULL WHERE id = 1"
Да, я понимаю, что запросы эквивалентны, но надо быть честным хотя бы в пределах одного абзаца…
"dramatically with no reason" - "for no [apparent] reason".
so, use this function only if you have an idea what does it mean.
"so use this only if you have a very good idea, what exactly you are doing. Even then, you probably should not use it."
Английский язык довольно свободен в отношении запятых. Даже если ты пропустишь половину, никто не заметит.
"works
in a slightly different way"… Так же "most of
the time"…
"never outputs data right
away during"
I was amased by the construction of that phrase… переставь in в начало. "… in how many".
"SELECT COUNT(1)" - COUNT(*). Я не знаю, почему COUNT(число) возвращает количество строк в таблице, это поведение недокументировано, и код по сути невалиден.
В части "Getting data out of statement. fetch()" стоит повесить большую красную тряпку
Do not,
never ever use construction
PHP:
while($row = $stmt->fetch()) $arr[] = $row;
to get multiple rows from query result into a single array. If you want the resultset as an array, use PDOStatement::fetchAll() instead. F.e.
PHP:
$stmt->execute($params);
$smarty->assign('data', $stmt->fetchAll());
Это настолько часто встречается, что просто несмешно…
P.S.
server-side prepares+multiexec ощутимо ускоряют выполнение множества запросов (5-7% на insert). Проблема в том, что если сервер достаточно сильно нагружен, серверные препсы могут вытесняться и кэша и их приходится препарировать заново. Это усложняет код…