8. 插入記錄(Insert)

Insert 的用法如下:

// $name 為字串,$year 為數字
$name='abcde';
$year=18;

// 插入一筆記錄,命令的大小寫無妨,但資料表 t 及變數則大小寫有分別 !
$sql = "INSERT INTO t VALUES ('$name', $year)";

// $sql = "insert into t values ('$name', $year)"; 亦可。

// 執行
$rs = $conn->Execute($sql);

// 檢查執行結果,進行錯誤處理;若正常,則繼續其它動作....
if (!$rs) print $conn->ErrorMsg();

....以下省略....

ErrorMsg() 是錯誤顯示的函式,它會取出錯誤訊息,並顯示出來。

另外,ADODB 提供一種 記錄集(RecordSet) 函式 GetInsertSQL(),可幫您產生 Insert 的語法。

例子如下:

<?php

// 引入 ADODB
include('adodb/adodb.inc.php');

// 建立連線物件
$conn = &ADONewConnection('mysql');

// 偵錯
$conn->debug=true;

// DSN 四項基本資料設定
$mch="localhost";
$user="root";
$pwd="jack168";
$database="test";

// 連接至資料庫 test
$conn->PConnect($mch, $user, $pwd, $database);

// 產生一筆空記錄
$sql = "select * from t where year=-1";

$rs = $conn->Execute($sql);


// 用一個空陣列來裝要更新的資料
$r = array();

$r['name']='john';
$r['year']=28;

// 用 GetInsertSQL 函式來製作一個完整的 sql 命令,此 sql 命令放在 $insertSQL 中
$insertSQL = $conn->GetInsertSQL($rs, $r);

// 執行插入
$conn->Execute($insertSQL);

$conn->Close();
?>

偵錯訊息如下:

-----------------------------------------------------------
(mysql): select * from t where year=-1
-----------------------------------------------------------
(mysql): INSERT INTO t ( name, year ) VALUES ( 'john', 28 )
-----------------------------------------------------------