В PHP нет символа продолжения строки.Вы должны использовать Heredoc:
$s = $dbh->prepare(<<<'EOQ'
SELECT name, type,
(SELECT COUNT(opinionid) FROM fe_opinion WHERE actor = name) AS countopinion,
(SELECT COUNT(commentid) FROM fe_comment WHERE actor = name) AS countcomment,
# ...
FROM fs_actor WHERE name = :name"
EOQ
);
Одиночные кавычки вокруг EOQ
вот то, что PHP необъяснимо называет "Nowdoc" синтаксис, который такой же, как Heredoc, но не анализируется- эквивалент использования $s = 'Hello $world';
против двойных кавычек $s = "Hello $world";
- который может сэкономить вам пару миллисекунд где-то внизу строки (но, между прочим, кажется, отбрасывает подсветку синтаксиса SO).
Ваша единственная (разумная) альтернатива в PHP - кроме хранения ваших запросов в другом месте - это использовать конкатенацию строк, которая выглядит довольно уродливо:
$s = $dbh->prepare(
'SELECT name, type, ' .
' (SELECT COUNT(opinionid) FROM fe_opinion WHERE actor = name) AS countopinion, ' .
' (SELECT COUNT(commentid) FROM fe_comment WHERE actor = name) AS countcomment, ' .
// ...
' FROM fs_actor WHERE name = :name'
);
... что довольно уродливо и требует от вас вниманияваши пробелы.