数日前に adodb をダウンロードし、adodb を使用して Access データベースに接続しようとしましたが、その後、接続できましたが、レコードの更新や挿入ができませんでした。なぜ誰も私の困った質問に答えてくれなかったのですか。今までは PHP 独自の ODBC を使用する adodb を諦めていましたが、非常に使いにくいので、クラスにカプセル化されていない次の関数を作成しました。同じ問題を抱えている友人の助けになれば幸いです。
<?php
/*
*@アクセスクラス
* レコードの挿入、更新、削除
* バージョン1.0
* 日付 2005.6
* サムスン・マンザロ (34n Zhu Bajie) によるパワー
* www.knowsky.com
*/
//====================================
// レコードを挿入
//レコードを挿入
//====================================
関数 insRd($table,$field){
$connstr = "DRIVER=Microsoft Access ドライバー (*.mdb);DBQ=データベース/電子メール.mdb";
$connid = @odbc_connect($connstr,"","",SQL_CUR_USE_ODBC ) または die ("データベース接続エラー!");
$tmpA =explode(',',$field);
$ins = '';
for($i=0;$i<count($tmpA);$i++){
$ins.= "'".$_POST[$tmpA[$i]]."',";
}
$ins = substr($ins,0,-1);
$sql = "INSERT INTO ".$table." (".$field.") VALUES (".$ins.")";
//エコー $sql;終了;
$query = @odbc_do($connid,$sql);
}
//====================================
// 1 つのレコードの詳細を取得します
// 現在のレコードの詳細情報を取得します
//====================================
関数 getInfo($table,$field,$id,$colnum){
$connstr = "DRIVER=Microsoft Access ドライバー (*.mdb);DBQ=データベース/電子メール.mdb";
$connid = @odbc_connect($connstr,"","",SQL_CUR_USE_ODBC ) または die ("データベース接続エラー!");
$sql = "select * from ".$table." where ".$field."=".$id;
$query = @odbc_do($connid,$sql);
if(odbc_fetch_row($query)){
for($i=0;$i<$colnum;$i++){
$info[$i] = odbc_result($query,$i+1);
}
}
$info を返します。
}
//====================================
//レコードリストを取得
// レコードリストを取得する
//====================================
function getList($table,$field,$colnum,$condition,$sort="ID の説明で並べ替え"){
$connstr = "DRIVER=Microsoft Access ドライバー (*.mdb);DBQ=データベース/電子メール.mdb";
$connid = @odbc_connect($connstr,"","",SQL_CUR_USE_ODBC ) または die ("データベース接続エラー!");
$sql = "select * from ".$table." ".$condition." ".$sort;
$query = @odbc_do($connid,$sql);
//エコー $sql."<br>";
$i = 0;
while(odbc_fetch_row($query)){
$rdList[$i] = getInfo($table,$field,odbc_result($query,1),$colnum);
$i++;
}
$rdList を返します。
}
//====================================
//レコードリスト条件を取得
// レコードリストを取得する
//====================================
function getFieldList($table,$field,$fieldnum,$condition="",$sort=""){
$connstr = "DRIVER=Microsoft Access ドライバー (*.mdb);DBQ=データベース/電子メール.mdb";
$connid = @odbc_connect($connstr,"","",SQL_CUR_USE_ODBC ) または die ("データベース接続エラー!");
$sql = ".$table." ".$condition." ".$sort; から ".$field." を選択します。
$query = @odbc_do($connid,$sql);
//エコー $sql."<br>";
$i = 0;
while(odbc_fetch_row($query)){
for($j=0;$j<$fieldnum;$j++){
$info[$j] = odbc_result($query,$j+1);
}
$rdList[$i] = $info;
$i++;
}
$rdList を返します。
//
====================================
//レコードを更新する
//レコードを更新する
//====================================
関数 updateInfo($table,$field,$id,$set){
$connstr = "DRIVER=Microsoft Access ドライバー (*.mdb);DBQ=データベース/電子メール.mdb";
$connid = @odbc_connect($connstr,"","",SQL_CUR_USE_ODBC ) または die ("データベース接続エラー!");
$sql = "update ".$table." set ".$set." where ".$field."=".$id;
$query = @odbc_do($connid,$sql);
}
//====================================
// レコードの削除
// レコードを削除
//====================================
関数 delRd($テーブル,$フィールド,$id){
$connstr = "DRIVER=Microsoft Access ドライバー (*.mdb);DBQ=データベース/電子メール.mdb";
$connid = @odbc_connect($connstr,"","",SQL_CUR_USE_ODBC ) または die ("データベース接続エラー!");
$sql = "「.$table.」から削除します。" where ".$field."=".$id;
$query = @odbc_do($connid,$sql);
}
//====================================
// レコード削除猫
// レコードを削除(条件)
//====================================
関数 delOrRd($table,$condition){
$connstr = "DRIVER=Microsoft Access ドライバー (*.mdb);DBQ=データベース/電子メール.mdb";
$connid = @odbc_connect($connstr,"","",SQL_CUR_USE_ODBC ) または die ("データベース接続エラー!");
$sql = "".$table から削除します。" where ".$condition;
$query = @odbc_do($connid,$sql);
}
//====================================
//カウントレコード
// レコード数を取得する
//====================================
関数 countRd($table,$condition=""){
$connstr = "DRIVER=Microsoft Access ドライバー (*.mdb);DBQ=データベース/電子メール.mdb";
$connid = @odbc_connect($connstr,"","",SQL_CUR_USE_ODBC ) または die ("データベース接続エラー!");
$sql = "「.$table」の数値として count(*) を選択します。" ".$condition;
$query = @odbc_do($connid,$sql);
odbc_fetch_row($query);
$num = odbc_result($query,1);
$num を返します。
}
?>