A. php使用pdo連接access資料庫並循環顯示數據操作示例
本文實例講述了PHP使用pdo連接access資料庫並循環顯示數據操作。分享給大家供大家參考,具體如下:
PDO連接與查詢:
try
{
$conn
=
new
PDO("odbc:driver={microsoft
access
driver
(*.mdb)};
dbq=".realpath("MyDatabase.mdb"))
or
die("鏈接錯誤!");
//echo
"鏈接成功!";
}
catch(PDOException
$e){
echo
$e->getMessage();
}
$sql
=
"select
*
from
users";
1.
foreach()方法
foreach
($conn->query($sql)
as
$row)
{
$row["UserID"];
$row["UserName"];
$row["UserPassword"];
}
2.
while()方法
$rs
=
$conn->query($sql);
$rs->setFetchMode(PDO::FETCH_NUM);
while($row=$rs->fetch()){
$row[0];
$row[1];
$row[2];
}
php使用PDO抽象層獲取查詢結果,主要有三種方式:
(1)PDO::query()查詢。
看下面這段php代碼:
<?php
//PDO::query()查詢
$res
=
$db->query('select
*
from
user');
$res->setFetchMode(PDO::FETCH_NUM);
//數字索引方式
while
($row
=
$res->fetch()){
print_r($row);
}
?>
(2)PDO->exec()處理sql
<?php
//PDO->exec()處理sql
$db->setAttribute(PDO::ATTR_ERRMODE,
PDO::ERRMODE_EXCEPTION);
$res
=
$db->exec("insert
into
user(id,name)
values('','php點點通')");
echo
$res;
?>
(3)PDO::prepare()預處理執行查詢
<?php
//PDO::prepare()預處理執行查詢
$res
=
$db->prepare("select
*
from
user");
$res->execute();
while
($row
=
$res->fetchAll())
{
print_r($row);
}
?>
setAttribute()
方法是設置屬性,常用參數如下:
PDO::CASE_LOWER
--
強制列名是小寫
PDO::CASE_NATURAL
--
列名按照原始的方式
PDO::CASE_UPPER
--
強制列名為大寫
setFetchMode方法來設置獲取結果集的返回值的類型,常用參數如下:
PDO::FETCH_ASSOC
--
關聯數組形式
PDO::FETCH_NUM
--
數字索引數組形式
PDO::FETCH_BOTH
--
兩者數組形式都有,這是默認的
PDO::FETCH_OBJ
--
按照對象的形式,類似於以前的
mysql_fetch_object()
對上面總結如下:
查詢操作主要是PDO::query()、PDO::exec()、PDO::prepare()。
PDO->query()
—
處理一條SQL語句,並返回一個「PDOStatement」
PDO->exec()
—
處理一條SQL語句,並返回所影響的條目數
PDO::prepare()主要是預處理操作,需要通過$rs->execute()來執行預處理裡面的SQL語句
最後介紹兩個常用的函數:
(1)fetchColumn()獲取指定記錄里一個欄位結果,默認是第一個欄位!
<?php
$res
=
$db->query('select
*
from
user');
//獲取指定記錄里第二個欄位結果
$col
=
$res->fetchColumn(1);
echo
$col;
?>
(2)fetchAll(),從一個結果集中獲取數據,然後存放在關聯數組中
<?php
$res
=
$db->query('select
*
from
user');
$res_arr
=$res->fetchAll();
print_r($res_arr);
?>
更多關於PHP相關內容感興趣的讀者可查看本站專題:《PHP基於pdo操作資料庫技巧總結》、《php+Oracle資料庫程序設計技巧總結》、《PHP+MongoDB資料庫操作技巧大全》、《php面向對象程序設計入門教程》、《php字元串(string)用法總結》、《php+mysql資料庫操作入門教程》及《php常見資料庫操作技巧匯總》
希望本文所述對大家PHP程序設計有所幫助。
您可能感興趣的文章:PHP使用PDO連接ACCESS資料庫PHP資料庫鏈接類(PDO+Access)實例分享php中mysql連接方式PDO使用詳解關於php連接mssql:pdo
odbc
sql
serverPhp中用PDO查詢Mysql來避免SQL注入風險的方法php中在PDO中使用事務(Transaction)全新的PDO資料庫操作類php版(僅適用Mysql)php使用pdo連接並查詢sql資料庫的方法php使用pdo連接mssql
server資料庫實例PHP實現PDO的mysql資料庫操作類
B. php 能使用access資料庫
當然可以,但是比較麻煩,因為php一般運行的Unix平台不支持對access文件的讀寫驅動,你需要安裝第三方軟體進行驅動。
C. php使用adodb 鏈接access方法
需要注意php獲取路徑用的是realpath
.代碼如下:
<?php
$connstr="DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" . realpath("data.mdb");
$connid=odbc_connect($connstr,"","",SQL_CUR_USE_ODBC);
$issuetime=date("Y-m-d H:i:s");
$sql="insert into test values("","",...)";
$result=odbc_exec($connid,$sql);
if($result) echo "successful";
else echo "failed";
?>
之二:
.代碼如下:
<?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();
?>
方法三:用ODBC,在ODBC治理器中為db1.mdb建一處系統數據源(一般需要伺服器許可權,不建議使用)
名稱:dbdsn (可以自己定)
驅動程序:Microsoft Access Driver (*.MDB)
代碼:
.代碼如下:
$Conn = odbc_connect("dbdsn","admin","123"); //連接數據源
$Doquery=odbc_exec($Conn,"select * from 表名 where 條件");//執行查詢
D. php如何連接Access資料庫
首先下載 php-5.1.1-installer.exe
才2M多,刷的就下來了,okok,然後運行,轉到D盤吧,一路順風,點擊next。然後建一個目錄php,新建文件info.php輸入代碼:
<html>
<body>
<? phpinfo(); ?>
</body>
<html>
在iis里數據http://localhost/php/info.php
如果出現一長串的PHP Version 5.1.1等樣子的話,恭喜,配置好了。
如圖:新建php/data/db.mdb,建表szd_t,輸入點數據吧,如圖:建立文件default.php;輸入:
<?
$conn = new com("ADODB.Connection");
$connstr = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=". realpath("data/db.mdb");
$conn->Open($connstr);
$rs = new com("ADODB.RecordSet");
$rs->Open("select * from szd_t",$conn,1,1);
while(! $rs->eof) {
$f = $rs->Fields(1);
echo $f->value;
$rs->MoveNext();
}
?>
瀏覽,還列印你剛在資料庫的記錄,成功成功,哈哈哈,完畢。
E. PHP簡單的操作Access資料庫
關於用PHP連接ACCESS資料庫的做法
用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 移動到記錄集的最後一條記錄
記錄集對象屬性
AbsolutePosition 用來設置或讀取當前記錄在記錄集中的位置順序號
BOF 標明當前位置在記錄集中的第一條記錄之前
EOF 標明當前位置在記錄集中的最後一條記錄之後
RecordCount 表示一個記錄集中的記錄總數
記錄集進行分頁
AbsolutePage 指定當前的頁
PagePount 返回記錄集中的邏輯頁數
PageSize 指定一個邏輯頁中的記錄個數,預設值是10
GetRows() 記錄取到數組
MaxRecords 記錄集的最大容量
本人註:在文章最後只給出了ASP的內容,沒有找到PHP的啊,還有我試驗了以上內容,可是發現那容輸出以後只是一個Object單詞,不知道為什麼,還希望高手不吝賜教!
F. php連接Access資料庫的三種方法
提供已知的幾種連接方式:
1.
$conn = new com("ADODB.Connection");
$connstr = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" . realpath("test.mdb");
$conn->Open($connstr);
2.
$conn=new com("ADODB.connection");
$connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=".realpath("test.mdb");
$conn->open($connstr);
3.
$connection = odbc_connect("Driver={Microsoft Access Driver (*.mdb)};Dbq=$mdbFilename", $user, $password);