[学習メモ][PHP] PHPでSQLiteを使う(3)

exec関数でレコード登録ができない?
$result = $db->exec("insert~");
でレコード登録してみるが登録されない。
$resultの値も別にFALSEでは無いみたい。

C:\php\error.log確認
PHP Warning: SQLite3::exec() [sqlite3.exec]: attempt to write a readonly database in xxx.php on line 62

データベースがreadonlyだからか?

SQLite3コンストラクタの第2引数でオープン方法を指定できるが、証約時はREADWRITE | CREATEのはず…

明示的にREADWRITEを指定してみる。 → 駄目

Windows側のアクセス権かも
エクスプローラーでデータベースファイルのプロパティを開き [セキュリティ] - [編集]
アクセス許可画面が開いたら [追加]
IIS_IUSRSを検索し[OK]、変更権限を与える。
※IUSRにははじめから変更権限付いてました。

再試行 → 書き込めました。

→ データベースファイルには IIS_IUSRS と IUSR のアカウントで変更権限を与えておくこと。

0 件のコメント:

その他の記事