使用注意事項
PHP 5.4.5以前的版本,只需要在php.ini中把com.allow_dcom = true打開就可以了,
但是5.4.5版本以后,PHP把com/dotnet 模塊集成到了一個單獨的擴展中,
所以需要在php.ini中加一行擴展extension=php_com_dotnet.dll,是加一行,不是打開,默認配置文件中沒有這一行的,然后重啟IIS或Apache,再次運行就正常了!
com組件時windows 獨有的不能在linux上執行
1.檢查php目錄ext文件夾下面php_com_dotnet.dll是否存在
2.在php.ini里面加入以下語句:
[PHP_COM_DOTNET]
extension=php_com_dotnet.dll
3.php.ini中設置
去掉前面的分號
com.allow_dcom = true
具體代碼實現
<?php
//創建一個Connection對象
$conn = new COM("ADODB.Connection") or die("創建COM失敗");
//鏈接mdb 文件
$connstr = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=". realpath("./db.mdb");
$conn->Open($connstr);
//創建一個Recordcount對象
$rs = new COM("ADODB.RecordSet") or die("創建RS失敗");
/**
* 參數1 : sql 字符串
* 參數2 :連接對象
* 參數3 : 打開方式
* 0 只讀, 數據只能向下移動
* 1 可讀寫,數據可以自由移動,多用戶下別人不能看到新增數據(除非重啟動)
* 2 可讀寫,數據可以自由移動,多用戶下別人可以看到新增數據
* 3 只讀 , 數據可以自由移動
* 參數4 : 鎖定類型
* 1 默認值, 只讀
* 2 悲觀鎖定
* 3 樂觀鎖定
* 4 批次樂觀鎖定
*/
$rs->Open("select * from SmartCard",$conn,1,1);
while(!$rs->eof) {
//取字段名和值
//方式1
echo $rs->Fields("ID")->name;
echo " : ";
echo $rs->Fields("ID")->value;
echo "-----";
//方式2
echo $rs->Fields(0)->name;
echo " : ";
echo $rs->Fields(0)->value;
echo "-----";
//換行
echo "<br>";
$rs->MoveNext();
}
// 釋放資源
$rs->Close();
$conn->Close();
$rs = null;
$conn = null;
?>
如果結合文件上傳mdb文件,再讀取mdb文件,需要注意的地方
上傳文件大小的設置
打開php.ini,首先找到
file_uploads = on ;是否允許通過HTTP上傳文件的開關。默認為ON即是開
upload_tmp_dir ;文件上傳至服務器上存儲臨時文件的地方,如果沒指定就會用系統默認的臨時文件夾
upload_max_filesize = 8m ;望文生意,即允許上傳文件大小的最大值。默認為2M
post_max_size = 8m ;指通過表單POST給PHP的所能接收的最大值,包括表單里的所有值。默認為8M
一般地,設置好上述四個參數后,上傳<=8M的文件是不成問題,在網絡正常的情況下。
但如果要上傳>8M的大體積文件,只設置上述四項還一定能行的通。
進一步配置以下的參數
max_execution_time = 600 ;每個PHP頁面運行的最大時間值(秒),默認30秒
max_input_time = 600 ;每個PHP頁面接收數據所需的最大時間,默認60秒
memory_limit = 8m ;每個PHP頁面所吃掉的最大內存,默認8M
把上述參數修改后,在網絡所允許的正常情況下,就可以上傳大體積文件了
max_execution_time = 600
max_input_time = 600
memory_limit = 32m
file_uploads = on
upload_tmp_dir = /tmp
upload_max_filesize = 32m
post_max_size = 32m