sqlit3でのエラー表示です。
SQLSTATE[HY000]: General error: 8 attempt to write a readonly database
このエラーはデータベースが読み取り専用モードであるため、書き込み操作が試行された場合に発生するエラーです。
このエラーの原因としては、データベースファイル自体が読み取り専用に設定されているか、データベースのパーミッションが適切に設定されていないかのいずれかが考えられます。
じゃあ直そう!
もう力技です。
すべての人に編集権限と閲覧権限を与えます
sudo chmod 777 <データベース名>
例えばdrink.dbなら
sudo chmod 777 drink.db
すると違うエラーが...
SQLSTATE[HY000]: General error: 14 unable to open database file
データベースファイルを開くことができない場合に発生するエラーです。
普通はパスが間違っているとか、ファイルが存在しないときとかに出ますが、今回はどっちでもないことは確定しています。
読み取り権限もあるし....
これ、通過するディレクトリにも権限必要なんです。
なので
sudo chmod 777 <ディレクトリ名>
呼び出している一番上のファイルがあるディレクトリからデータベースファイルまで通過するディレクトリ全てに同じように設定します。
これで解決!