SQLite :: テーブルの作成 / auto increment の指定

SQLite は、サーバとしてではなくアプリケーションに組み込まれて利用される軽量のデータベースです。
ここでは、PHP から SQLite を操作することを前提にしています。

注意PDO は SQLite3 以上でないと対応していません

テーブルの作成

テーブルの作成には PHP関数の sqlite_query を使います。

■概要

sqlite_query – 指定したデータベースに対してクエリを実行し、結果ハンドルを返す


■説明

sqlite_query ( resource dbhandle, string query [, int result_type [, string &error_msg]] )

SQLite データベースリソース

実行するクエリ

オプションのresult_typeパラメータには定数を指定でき、返される配列の添字を定義します。SQLITE_ASSOC を用いると、連想配列の添字(名前フィールド)のみが 返されます。一方、SQLITE_NUM は、数値の添字(フィールド番号)のみを返します。SQLITE_BOTH は、連想配列の添字と数値の添字の両方を返します。SQLITE_BOTH がこの関数のデフォルトです。

もしエラーが発生した場合、ここに保存されます。SQL構文のエラーは sqlite_last_error() 関数で取得することができないため、このパラメータが特に重要となります。


■返り値

この関数は結果ハンドル、もしくは失敗時に FALSE を返します。
レコードを返すクエリの場合、結果ハンドルは sqlite_fetch_array() や 
sqlite_seek()のような関数で使用することができます。


■記述例

$sql = "create table tablename (id int, name varchar(10))";
sqlite_query($link, $sql, SQLITE_BOTH, $sqliteerror);


■実行例

<html>
<head><title>SQLite TEST</title></head>
<body>
 
<?php
$dbh = sqlite_open('test.db', 0666, $sqliteerror);
if ( ! $dbh) {
    die('接続失敗...'.$sqliteerror);
}
echo '接続に成功!<br>';
 
// クエリ実行
$sql = "create table tablename (id int, name varchar(10))";
$res = sqlite_query($dbh, $sql, SQLITE_BOTH, $sqliteerror);
 
if ( ! $res) {
    die('クエリー失敗...'.$sqliteerror);
} else {
    echo 'クエリー成功!<br>';
}
 
// 切断
sqlite_close($dbh);
echo '切断しました。<br>';
?>
 
</body>
</html>


auto increment の指定

カラムの型を以下のように指定する

INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT


SQLiteManager

SQLiteManager という便利なツールもあります。