.Water-Sunlight
.サイトメニュー
.検索
.オンライン状況
登録ユーザ: 0
ゲスト: 1
.
<< Prev
例題:SQLフォーム
« INDEX »
PHP データベース編
Next >>
SQLフォームの実行例
作成日:2006/06/15

3B.2 SQLフォームの仕様

環境設定

 以下の環境設定が可能です。設定は sql.ini.php の中に記述します。

sql.ini.php
項目設定例
環境定数
#-----------------------------------------------------------
# 環境定数
#-----------------------------------------------------------
define( C_UNTITLED_FILE, "untitled.sql"); # 無名のSQLファイル名
define( C_CHARSET,       "EUC-JP");       # 使用文字セット
define( C_PAGE_TITLE,    "SQL フォーム"); # ページのタイトル
define( C_MYSQL41,       1 );             # MySQL4.1以上を使用する/しない
SQLファイルの保存先
#-----------------------------------------------------------
# SQLファイルの保存先
#-----------------------------------------------------------
$sql_path = "./sql";
SQL実行プログラム
リスト
#-----------------------------------------------------------
# SQL実行プログラムリスト
#-----------------------------------------------------------
# $exec_list[IF名]['exec'] = スクリプトファイル名
# $exec_list[IF名]['dbms'][DBMS名] = array(p1=>v1,p2=>v2,・・・)
#
# [IF名  ]: PEAR/PDO/DBI
# [DBMS名]: mysql/sqlite/jet
#
# [IF名]と[DBMS名]が与えられた場合、以下のスクリプトを実行します
# スクリプトファイル名?n1=v1&n2=v2&・・・
# PEAR::DB
$exec_list['PEAR']['exec'] = 'sqlexec_pdb.php';
$exec_list['PEAR']['dbms']['mysql' ] =
 array( 'dsn'=>'mysql://sunlight:password@localhost:3306/test');
$exec_list['PEAR']['dbms']['sqlite'] =
 array( 'dsn'=>'sqlite:///d:/WWWRoot/samples/sqlfile.php/db/sample.db');
$exec_list['PEAR']['dbms']['jet'   ] =
 array( 'dsn'=>'odbc(access):///jet');


SQLスクリプト

本プログラムでは使用できるSQLスクリプトの例を以下に示します。

sample.sql
# テーブル作成
@DROP TABLE syain;
CREATE TABLE syain (
  syain_no int NOT NULL,
  syain_name varchar(50),
  bumon_no int,
  PRIMARY KEY (syain_no)
);
;
# テーブルにデータを挿入
INSERT INTO syain VALUES(1,'Suzuki',3);
INSERT INTO syain VALUES(2,'Yamamoto',1);
INSERT INTO syain VALUES(3,'Tanaka',2);
EVAL sleep(1);
# テーブルの検索
SELECT * FROM syain;

SQLスクリプトは文の列として表現できます。以下に文の規則を示します。

  • 文はセミコロン( ; )で終わります。
  • 1行に複数の文は記述できません。(1文を複数の行に記述することはできます)
  • コメントは # で始まります。
  • 空文(;だけの文)も有効です。(これは実行結果を改行する為に使います)

SQLフォームでは基本的に以下の2種類の文をサポートしています。

文の種類説明
SQL文

SQL文にはSELECT文非SELECT文があります。 SELECT 及び SHOW で始まる文が SELECT文 として処理されます。 SQLフォームは SELECT文 の処理結果はテーブルで表示し、 非SELECT文 の場合は、実行結果がエラーの場合のみ結果を表示します。

例:
SELECT * FROM syain;
INSERT INTO syain VALUES(1,'Suzuki',3);
@DROP TABLE syain;

通常、実行結果にエラーがあった場合、SQLスクリプトの実行は中止されますが、 SQL文の前に @ を付けるとスクリプトを継続します。

EVAL文

EVAL で始まる文を EVAL文 と呼びます。EVAL文 の全ての引数はPHPのパーサで処理されます。

例:
EVAL print 'Hello<br />'; 
EVAL sleep(1);
EVAL $db->autoCommit(false);

最後の例で分かるように、EVAL文ではデータベースオブジェクトを操作する事ができます。 詳しくは実際のソースコード( sqlexec_pdb.php の DoSqlScript()の中 )を参照して下さい。

<< Prev
例題:SQLフォーム
« INDEX »>
Page Top
Next >>
SQLフォームの実行例

.