挿入中にSQLiteエラー「読み取り専用データベースへの書き込みを試行しています」? 質問する

挿入中にSQLiteエラー「読み取り専用データベースへの書き込みを試行しています」? 質問する

私はウェブサイトでSQLiteデータベースを使用しています。問題は、INSERT INTOそれを試そうとすると、PDOException

SQLSTATE[HY000]: General error: 8 attempt to write a readonly database

サーバーにSSH接続して権限を確認したところ、データベースには権限がありました

-rw-rw-r--

私は*nixのパーミッションにあまり詳しくないのですが、これは

  • ディレクトリではありません
  • 所有者には読み取り/書き込み権限があります ( によると、それは私ですls -l)
  • グループには読み取り/書き込み権限があります
  • 他の人は読み取り権限のみを持っています

また、このsqlite3プログラムを使用するために私が知っているあらゆる場所を調べましたが、関連するものは何も見つかりませんでした。

PDOがどのような権限でデータベースを開こうとしているのかわからなかったので、

chmod o+w supplies.db

さて、もう一つありますPDOException:

SQLSTATE[HY000]: General error: 14 unable to open database file

INSERTしかし、これはクエリを実行しようとしたときにのみ発生しますデータベースが開いています。

何が起こっているのか何か分かりますか?

ベストアンサー1

結局のところ、問題は、PDO SQLite ドライバーでは、書き込み操作 (、、、など) を実行する場合、INSERT実際のデータベース ファイルだけでなく、データベースが存在するフォルダーにも書き込み権限が必要であることです。UPDATEDELETEDROP

この情報はPDO SQLite ドライバのマニュアルページの一番下にあるコメント

おすすめ記事