#author("2023-01-22T20:19:23+09:00","","")
#author("2023-01-22T20:21:02+09:00","","")
#navi(../)

* PHPのPDOを使ってSQLiteを操作する [#na8f1e52]
UbutnuでPHPのPDOを使ってSQLiteを操作する手順を以下に記します。

#contents

* 動作確認環境 [#m214cdcd]
- Ubutnu
 $ lsb_release -rd
 Description:    Ubuntu 20.04.5 LTS
 Release:        20.04
- PHP
 $ php -v
 PHP 7.4.3-4ubuntu2.16 (cli) (built: Sep 15 2022 22:53:21) ( NTS )
 Copyright (c) The PHP Group
 Zend Engine v3.4.0, Copyright (c) Zend Technologies
     with Zend OPcache v7.4.3-4ubuntu2.16, Copyright (c), by Zend Technologies

* 動作環境の構築 [#w793ca30]
Ubutnuでaptコマンドを使って、以下のパッケージをインストールしました。~
PHPはインストール済であることを前提としています。
 sudo apt install php-sqlite3
このパッケージが入っていないとPDOが使えません。~
WebサーバとPHPの連携が不要かつPHP未インストールでスクリプトとして使用する場合は、以下のコマンドで環境を構築できます。
 sudo apt install php-cli php-sqlite3

PHPのPDOで作成されたDBファイルをコマンドラインで確認したい場合は、sqlite3もインストールした方が良いでしょう。~
-[[UbuntuにSQLite3をインストール>SQLite/UbuntuにSQLite3をインストール ]]
GUI操作の場合は
-[[UbuntuにDB Browser for SQLiteをインストール>SQLite/UbuntuにDB Browser for SQLiteをインストール ]]

* PHPでPDOを使ってSQLiteを操作してみる [#r129e1c1]
SQLiteはファイルDBなので、ファイルが無い場合は作成されます。~
以下のサンプルはテーブルを作成し、データをINSERT、UPDATEするコードになります。
#br
- pdo_access.php
 <?php
 $dbfile = './pdo_test.sqlite3';
 $conn = new PDO('sqlite:' . $dbfile);
 
 // DROP & CREATE TABLE
 $ddl = 'DROP TABLE IF EXISTS t1';
 $conn->query($ddl);
 $ddl = 'CREATE TABLE t1(id int, os text)';
 $conn->query($ddl);
 
 // INSERT
 $sql = "INSERT INTO t1 VALUES (1,'Windows'),(2,'Linux'),(3,'macOS'),(4,'Android'),(5,'iOS')";
 $conn->query($sql);
 
 // SELECT
 $sql = 'SELECT * FROM t1 ORDER BY id';
 $stmt = $conn->query($sql);
 while ($row = $stmt->fetch(PDO::FETCH_ASSOC))
 {
   echo $row['id'] . "," . $row['os'] . PHP_EOL;
 }

* 実行結果 [#z4b51730]
上記スクリプトの実行結果です。

 $ php ./pdo_access.php
 1,Windows
 2,Linux
 3,macOS
 4,Android
 5,iOS

以上、PHPのPDOを使ってSQLiteを操作するサンプルコードでした。

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS