データの追加(INSERT)

広告

先ほど作成したテーブルにデータを追加してみます。INSERTを使います。

先ほどはSQL文を実行するのに「sqlite_query」関数を使いましたが、SELECTなどと違いINSERTなどのSQL文を実行した結果が発生しない場合には「sqlite_exec」関数も使えます。(sqlite_query関数でも可能です)。

sqlite_exec
bool sqlite_exec(resource dbhandle, string query [, string &error_msg])
与えられたデータベースハンドル (dbhandle パラメータで指定される) に対し
て query によって指定される SQL ステートメントを実行します。

引数:
  dbhandle  SQLite データベースリソース。
  query 実行するクエリを指定します。
  error_msg  エラーが発生した場合、指定された変数に詰め込まれます。
返り値:
   成功時は TRUE、失敗時は FALSE を返します。

使い方は「sqlite_query」関数と基本的に同じです。また複数のSQL文をセミコロンでつなげて記述しておき、まとめて実行が可能です。

またSQL文を実行した結果、変更されたレコード数を取得することも可能です。「sqlite_changes」関数を使います。

sqlite_changes
int sqlite_changes(resource dbhandle)
データベースハンドル dbhandle に対して実行された 直近のSQLステートメント
によって変更されたレコード数を返します。

引数:
  dbhandle  SQLite データベースリソース。
返り値:
  変更されたレコード数を返します。

では試してみましょう。

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

<?php

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

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

$sql = "INSERT INTO shouhin (id, name) VALUES (1, 'テレビ');";
$sql = $sql."INSERT INTO shouhin (id, name) VALUES (2, 'DVDレコーダー')";
$result_flag = sqlite_exec($link, $sql, $sqliteerror);

if (!$result_flag) {
    die('クエリーが失敗しました。'.$sqliteerror);
}else{
    print(sqlite_changes($link).'件のレコードを追加しました。<br>');
}


sqlite_close($link);

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

?>
</body>
</html>

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

データの追加

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

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