テーブルの作成

広告

ではテーブルを作成してみます。テーブル作成やデータの取得などSQL文を発行するためには「sqlite_query」関数を使います。

sqlite_query
resource sqlite_query ( resource dbhandle, string query 
  [, int result_type [, string &error_msg]] )
指定したデータベースにより query で指定した SQL ステートメントを実行しま
す。

引数:
  dbhandle  SQLite データベースリソース。
  query  実行するクエリ
  result_type  オプションのresult_typeパラメータには定数を指定でき、返さ
    れる配列の添字を定義します。SQLITE_ASSOC を用いると、連想配列の添字
    (名前フィールド)のみが 返されます。一方、SQLITE_NUM は、数値の添字
    (フィールド番号)のみを返します。SQLITE_BOTH は、連想配列の添字と数値
    の添字の両方を返します。SQLITE_BOTH がこの関数のデフォルトです。
  error_msg  もしエラーが発生した場合、ここに保存されます。SQL構文のエラー
    は sqlite_last_error() 関数で取得することが できないため、このパラメー
    タが特に重要となります。
返り値:
  この関数は結果ハンドル、もしくは失敗時に FALSE を返します。レコードを
    返すクエリの場合、結果ハンドルは sqlite_fetch_array() や sqlite_seek() 
    のような関数で使用することができます。 

SQLで記述されたクエリーを発行します。SELECTなどの場合、クエリーでは結果としてresource型の値を受け取ります。そのresource型の値から実際に帰ってきたデータを取得していきます。3番目の引数で結果をどのような形で受け取るかを指定できますが、データを取得する時にも指定できるのでここではデフォルトのままでいいのかと思います。

ではテーブルを作成してみます。SQLiteでのテーブル作成について詳しくは『テーブルの作成』を参照して下さい。(ただしSQLite3系です)。

<html>
<head><title>PHP TEST</title></head>
<body>

<?php

$link = sqlite_open('test.db', 0666, $sqliteerror);
if (!$link) {
    die('接続失敗です。'.$sqliteerror);
}

print('接続に成功しました。<br>');


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

if (!$result_flag) {
    die('クエリーが失敗しました。'.$sqliteerror);
}

sqlite_close($link);

print('切断しました。<br>');

?>
</body>
</html>

上記ファイルをWWWサーバに設置しブラウザ経由で見ると下記のように表示されます。

テーブルの作成

次にわざと間違ったSQL文を試しに送ってみます。下記はSQL文のところを"create"ではなく"creates"にしただけです。

上記ファイルをWWWサーバに設置しブラウザ経由で見ると下記のように表示されます。

テーブルの作成

SQL構文のエラーはこのような形で取得できるようです。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。