とりあえずの備忘録

主にパソコンやインターネットに関するメモ

PHP osCommerceの機能を使いMySQLを操作する INSERT文

準備についてはこちら。

テーブルにデータを登録する

データを登録するテーブルの構成。

//購入履歴テーブル
create table settlement (
 customer_id int(8) not null, //会員ID
 shohin_id int(8) not null, //商品ID
 shohin_sum int(8) not null, //商品数
 settlement_date datetime not null //購入日
);

テーブルの作成についてはこちら。

「スクリプト」

<?php
//必要なファイルの読み込み
require('configure.php');
require('database.php');

//DB接続
tep_db_connect() or die('Unable to connect to database server!');

//テーブルのフィールド名をキーにした連想配列で登録データを用意
$settlement_array = array(
 'customer_id' => 23,
 'shohin_id' => 125,
 'shohin_sum' => 4,
 'settlement_date' => '2008-09-26'
);

//INSERT実行
tep_db_perform(settlement, $settlement_array);

//DB切断
tep_db_close();
?>

データを登録した際にAUTO_INCREMENTで生成された主キーの値を取得する

データを登録するテーブルの構成。

//ユーザー情報テーブル
create table users (
 id int(8) not null auto_increment, //ユーザーID(主キー)
 name varchar(32) not null, //ユーザー名
 primary key (id)
);

現在のテーブルのデータを全表示すると以下のとおり。

mysql > select * from users;
id name
1 山田太郎
4 斉藤しんご
6 山本ひろし
3 rows in set (0.00 sec)

最後に追加されたデータを「ユーザーID=6、ユーザー名=山本ひろし」とする。

「スクリプト」

<?php
//必要なファイルの読み込み
require('configure.php');
require('database.php');

//DB接続
tep_db_connect() or die('Unable to connect to database server!');

//INSERT実行(主キーのidは省略)
$users_array = array('name' => '鈴木ごんざぶろう');
tep_db_perform(users, $users_array);

//今のINSERT実行によりAUTO_INCREMENTで生成された主キーの値を取得
$now_id = tep_db_insert_id();

echo '追加されたユーザーのIDは「' . $now_id . '」です。';

//DB切断
tep_db_close();
?>

「出力結果」

追加されたユーザーのIDは「7」です。

 

UPDATE、DELETE文の使い方はこちら。