本文實例講述了PHP使用pdo連接access數(shù)據庫并循環(huán)顯示數(shù)據操作。分享給大家供大家參考,具體如下:

創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供塔河網站建設、塔河做網站、塔河網站設計、塔河網站制作等企業(yè)網站建設、網頁設計與制作、塔河企業(yè)網站模板建站服務,十余年塔河做網站經驗,不只是建網站,更提供有價值的思路和整體網絡服務。
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);
//數(shù)字索引方式
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()預處理執(zhí)行查詢
?php
//PDO::prepare()預處理執(zhí)行查詢
$res
=
$db-prepare("select
*
from
user");
$res-execute();
while
($row
=
$res-fetchAll())
{
print_r($row);
}
?
setAttribute()
方法是設置屬性,常用參數(shù)如下:
PDO::CASE_LOWER
--
強制列名是小寫
PDO::CASE_NATURAL
--
列名按照原始的方式
PDO::CASE_UPPER
--
強制列名為大寫
setFetchMode方法來設置獲取結果集的返回值的類型,常用參數(shù)如下:
PDO::FETCH_ASSOC
--
關聯(lián)數(shù)組形式
PDO::FETCH_NUM
--
數(shù)字索引數(shù)組形式
PDO::FETCH_BOTH
--
兩者數(shù)組形式都有,這是默認的
PDO::FETCH_OBJ
--
按照對象的形式,類似于以前的
mysql_fetch_object()
對上面總結如下:
查詢操作主要是PDO::query()、PDO::exec()、PDO::prepare()。
PDO-query()
—
處理一條SQL語句,并返回一個“PDOStatement”
PDO-exec()
—
處理一條SQL語句,并返回所影響的條目數(shù)
PDO::prepare()主要是預處理操作,需要通過$rs-execute()來執(zhí)行預處理里面的SQL語句
最后介紹兩個常用的函數(shù):
(1)fetchColumn()獲取指定記錄里一個字段結果,默認是第一個字段!
?php
$res
=
$db-query('select
*
from
user');
//獲取指定記錄里第二個字段結果
$col
=
$res-fetchColumn(1);
echo
$col;
?
(2)fetchAll(),從一個結果集中獲取數(shù)據,然后存放在關聯(lián)數(shù)組中
?php
$res
=
$db-query('select
*
from
user');
$res_arr
=$res-fetchAll();
print_r($res_arr);
?
更多關于PHP相關內容感興趣的讀者可查看本站專題:《PHP基于pdo操作數(shù)據庫技巧總結》、《php+Oracle數(shù)據庫程序設計技巧總結》、《PHP+MongoDB數(shù)據庫操作技巧大全》、《php面向對象程序設計入門教程》、《php字符串(string)用法總結》、《php+mysql數(shù)據庫操作入門教程》及《php常見數(shù)據庫操作技巧匯總》
希望本文所述對大家PHP程序設計有所幫助。
您可能感興趣的文章:PHP使用PDO連接ACCESS數(shù)據庫PHP數(shù)據庫鏈接類(PDO+Access)實例分享php中mysql連接方式PDO使用詳解關于php連接mssql:pdo
odbc
sql
serverPhp中用PDO查詢Mysql來避免SQL注入風險的方法php中在PDO中使用事務(Transaction)全新的PDO數(shù)據庫操作類php版(僅適用Mysql)php使用pdo連接并查詢sql數(shù)據庫的方法php使用pdo連接mssql
server數(shù)據庫實例PHP實現(xiàn)PDO的mysql數(shù)據庫操作類
?php
header('content-type:text/html;charset=utf-8');
$dsn = 'mysql:dbname=m-test;host=localhost';
$user = 'root';//數(shù)據庫用戶名
$passwd = '';//數(shù)據庫密碼
try {
$pdo = new pdo($dsn, $user, $passwd);
$pdo-query('set names utf8');//設置字符集
$result = $pdo-query('select * from user');//查詢數(shù)據庫
foreach ($result as $row) {
echo $row['id'];//輸出 id 號
echo ':';
echo $row['name'];//輸出 name
echo 'br /';
}
} catch (pdoexception $e) {
echo $e-getmessage();//錯誤信息
}
?
不論幾條數(shù)據,終究在php中都是數(shù)組,然后通過echo json_encode(php數(shù)組變量);直接輸出該函數(shù)就行,就是一段json數(shù)據
就是操作數(shù)據庫的方法,
pdo就是把操作數(shù)據庫的函數(shù)封裝成一個pdo類,其間做了安全驗證而已。
在使用PDO之前首先要設置PHP.INI文件,使PHP支持PDO,因為PHP5默認是不支持的。在PHP安裝目錄下找到PHP.INI文件,打開并搜索extension=php_pdo.dll 和 extension=php_pdo_mysql.dll,將前面的分號(;)去掉,重啟apache即可。
接下來我們就開始寫PHP代碼了,首先是連接數(shù)據庫,看下面的例子:
!--?php
define('DB_NAME', 'pdo_test');
define('DB_USER', 'root');
define('DB_PASSWORD', '');
define('DB_HOST', 'localhost');
define('DB_CHARSET', 'utf8');
try {
$DBH = new PDO('mysql:host='.DB_HOST.';dbname='.DB_NAME, DB_USER, DB_PASSWORD);
$DBH---exec('SET CHARACTER SET '.DB_CHARSET);
$DBH-exec('SET NAMES '.DB_CHARSET);
} catch (PDOException $e) {
print "Error!: " . $e-getMessage() . "br";
die();
}
?
連接成功后,我們需要對數(shù)據庫中的數(shù)據進行增刪改查操作,這里主要用到exec和query兩個函數(shù)。
示例:
!--?php
//增加數(shù)據
$sql_insert = 'Insert INTO wp_options(blog_id,option_name,option_value,autoload) VALUES (0,'.time().rand(1,100).','.time().rand(1,100).',\'no\')';
$back = $DBH---exec($sql_insert); //返回 bool 的true or fal
$lastInsertId = $DBH-lastInsertId();
//刪除數(shù)據
$sql_delete = 'Delete FROM wp_options Where option_id='.$lastInsertId;
$back = $DBH-exec($sql_delete); //返回 bool 的true or fal
$lastInsertId = $DBH-lastInsertId();
//更新數(shù)據
$sql_update = 'Update wp_options SET option_name = \''.time().rand(1,100).'\' Where option_id='.$lastInsertId;
$lastUpdateId = $DBH-lastInsertId(); //返回的對應的操作的id
//查詢數(shù)據
$sql_select = 'Select option_id FROM wp_options orDER BY option_id DESC LIMIT 4 ';
$back = $DBH-query($sql_select); //返回一個對象 這個對象可以用foreach 直接遍歷循環(huán) 循環(huán)的為查詢的結果集
$back = $DBH-query($sql_select)-fetch(); //返回一條數(shù)據結果 這個對象可以用foreach 直接遍歷循環(huán) 循環(huán)的為查詢的結果集
$back = $DBH-query($sql_select)-fetchAll(); //返回一個數(shù)組 這個對象可以用foreach 直接遍歷循環(huán) 循環(huán)的為查詢的結果集
$back = $DBH-query($sql_select)-fetchColumn(0); //返回一個字段字符串,這個字符串是返回的記錄的第一條記錄的第一個字段
?
到這里,PDO的基本操作基本上結束了。對于一般的企業(yè)網站,小型的管理系統(tǒng)基本上能滿足了,但是,如果我們開發(fā)大型網站或者邏輯較復雜的管理系統(tǒng),僅僅靠數(shù)據的讀寫是遠遠不夠的,我們可能還需要對數(shù)據庫的存儲過程、事務等對象進行操作,下面我們繼續(xù)看看用PDO是如何實現(xiàn)的。如果還有更多問題可以去后盾網論壇問題求助專區(qū),希望我的回答對你有幫助!
工具/原料
電腦
WAMPServer(Window+Apache+MySQL+PHP集成開發(fā)環(huán)境,大家可以在網上下載)
方法/步驟
PDO配置。打開php.ini配置文件,找到下圖所示的配置信息,去掉要啟用的PDO前面的“#”號即可。另外一種方式是直接在啟動的wampserver中找到php擴展中的php_pdo_db.lib選項,重啟wampserver服務器即可。
如何利用PDO連接數(shù)據庫。利用下面這條簡單的語句即可連接數(shù)據庫
$pdo = newPDO("mysql:host=localhost;dbname=php100","root",“ ");
其中具體參數(shù)介紹如下圖所示:
PDO中常用的函數(shù)及其解釋如下。
PDO::query()主要是用于有記錄結果返回的操作,特別是SELECT操作
PDO::exec()主要是針對沒有結果集合返回的操作,如INSERT、UPDATE等操作
PDO::lastInsertId() 返回上次插入操作,主鍵列類型是自增的最后的自增ID
PDOStatement::fetch()是用來獲取一條記錄
PDOStatement::fetchAll()是獲取所有記錄集到一個中
下面通過一個簡單的php代碼示例來具體介紹如何使用PDO進行數(shù)據庫操作。
?php
//連接數(shù)據庫
$pdo = new PDO("mysql:host=localhost; dbname=member", "root","");
//在表user_list中插入數(shù)據
$pdo-exec("insert into user_list(uid, m_id, username, password) values(null,'3','testpdo','testpdo')");
//使用查詢語句
$sr = $pdo-query("select * from user_list");
//將查詢的結果循環(huán)輸出顯示
while($row=$sr-fetch()){
print_r($row);
}
?
命令行模式下,或者web模式下保存的路徑在服務器中,可以達到你的要求(有該路徑的權限即可)
如果是在web模式下,不提示直接保存到訪客的電腦中的某個位置,是不可以的。
web模式保存到客戶端,只能通過下載,由用戶指定,或保存到默認的下載目錄。
以下是代碼示例:
$dsn?=?'mysql:dbname=testdb;host=127.0.0.1';
$user?=?'dbuser';
$password?=?'dbpass';
//連接數(shù)據庫?pdo
try?{
$dbh?=?new?PDO($dsn,?$user,?$password,?array(PDO::MYSQL_ATTR_INIT_COMMAND?=?"SET?NAMES?'UTF8'"));
}?catch?(PDOException?$e)?{
echo?'Connection?failed:?'?.?$e-getMessage();exit;
}
//讀取數(shù)據,?具體sql你根據情況修改
$stat?=?$dbh-prepare('SELECT?*?FROM?`table`?WHERE?`id`0?LIMIT?100;');
$stat-execute();
$result?=?$stat-fetchAll(PDO::FETCH_ASSOC);
//創(chuàng)建csv文件并打開文件指針
$filepath='file.csv';
$fp?=?fopen($filepath,?'w');
//寫入數(shù)據
foreach($result?as?$i=$row){
//寫入標題行
if($i==0){
fputcsv($fp,?array_keys($row));
}
fputcsv($fp,?$row);
}
//關閉文件指針
fclose($fp);
//把文件輸出到下載
$file?=?fopen($filepath,"r");?//?打開文件
$size=filesize($filepath);
Header("Content-type:?application/octet-stream");
Header("Accept-Ranges:?bytes");
Header("Accept-Length:?".$size);
Header("Content-Disposition:?attachment;?filename=download.csv");
echo?fread($file,$size);
fclose($file);
相關知識點:
PHP: fputcsv
PHP:PDO
數(shù)據庫查詢的時候只返回列名,防止列出現(xiàn)重復,csv里會有重復的數(shù)據
網頁名稱:phppdo導出數(shù)據 php導出文件
文章出自:http://chinadenli.net/article2/hppioc.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供商城網站、ChatGPT、網站導航、標簽優(yōu)化、動態(tài)網站、微信公眾號
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)