日期:2014-05-16  浏览次数:20456 次

PHP链接ACCESS数据库最简单的方法

?

一·

<?PHP
     //创建ADO连接
$conn = @new COM("ADODB.Connection") or die ("ADO连接失败!");
$connstr = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" . realpath("temp/TempData.mdb");
$conn->Open($connstr);
     //创建记录集查询
$rs = @new COM("ADODB.RecordSet");
$rs->Open("select * from blog_Content",$conn,1,3);
echo $rs->Fields["log_Title"]->Value;     //输出log_Title字段
echo "<br/>";
$rs->Movenext();     //将记录集指针下移
echo $rs->Fields["log_Title"]->Value;
$rs->close(); 
?>
?

这只是个简单的方法,同样我们还可以Microsoft.Jet.OLEDB.4.0的方法连接,速度会更快一些。
注:conn = @new COM("ADODB.Connection") or die ("ADO连接失败!");
需要注意一下,这里 COM 必须使用大写,之前使用小写 Windows XP 居然出现非法操作,另这里使用了一个@符号,他的作用主要是容错!
其他的数据库操作方法类似于ASP,就不作多的介绍了~?

二·
用ASP和PHP的,一起做一个比较..

ASP程序

程序代码
1.conn= "DRIVER=Microsoft Access Driver (*.mdb);DBQ=" & Server.MapPath("*.mdb")
2.set conn = server.createobject("adodb.connection")
3.conn.open conn
4.set rs = Server.CreateObject("adodb.recordset")?
5.sql = "select * from 表名"
6.rs.Open sql, conn, 3, 1
7.rs.Close

PHP程序

程序代码
<?PHP
1.$conn = @new COM("ADODB.Connection") or die ("ADO连接失败!");
2.$connstr = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" . realpath("temp/TempData.mdb");
3.$conn->Open($connstr);
4.$rs = @new COM("ADODB.RecordSet");
5.$sql ="select * from blog_Content";
6.$rs->Open($sql,$conn,1,3);
7.$rs->close(); 
?>
?


两个程序都相对应....很好理解了吧.嘿....然后就是ASP和PHP操作记录集了...有什么不同,,看资料了事5~
php: $rs[name/index];??????????????????????
asp:?? rs(name/index);??????????????????????
php: $rs->Fields["name"]->Value / fields[index]->Value;
asp:?? rs.fields(index)/rs.field(name);?????
php中的方法和ASP中基本一致,只是写法上不一样,,注意:PHP区分大小写,写时后面一定要加;号?????????????????

asp:
修改记录集中的记录?
rs.AddNew?????????????? 向记录集中添加一条新记录
rs.Delete????????????????? 从记录集中删除一条记录
rs.{fieldName/fieldIndex}=指定值;
rs.Update??????????????? 保存对当前记录所做的修改
CancelBatch??????????? 当记录集处在批量更新模式时)取消一批更新
CancelUpdate???????? 调用Update之前)取消对当前记录所做的所有修改?????????????????????????????
UpdateBatch?????????? 当记录集处于批量更新模式时)保存对一个或多个记录的修改
遍历记录集
Move NumRecords??? 在记录集中向前或向后移动指定数目的记录数。
MoveFirst????????????????? 移动到记录集的第一条记录
MoveNext????????????????? 移动到记录集的下一条记录
MovePrevious??????????? 移动到记录集中的上一条记录
MoveLast?????????