SQLSTATE[42000]: Syntax error or access violation: 1142 SELECT command denied to user 'user'@'localhost' for table... が出る
エラーの原因
これは、権限がないよ! というエラーでした。
"user"というユーザーに、扱うデータベースに関する権限を与えてやれば、解決しました。
権限を与える方法
GRANTS ALL ON <データベース名>.* TO user@'localhost' identified by 'password'; FLUSH PRIVIEGES;
です。
SHOW GRANTS FOR testuser@'localhost';
で付与した権限が、思った通りに付与できているか確認できます。