思路:

成都創(chuàng)新互聯(lián)于2013年成立,先為新源等服務(wù)建站,新源等地企業(yè),進行企業(yè)商務(wù)咨詢服務(wù)。為新源企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
讀取csv文件,每讀取一行數(shù)據(jù),就插入數(shù)據(jù)庫
示例
文件夾結(jié)構(gòu)
/
file.csv????//csv大文件,這里只模擬三行數(shù)據(jù),不考慮運行效率(PS:csv文件格式很簡單,文件一般較小,解析很快,運行效率的瓶頸主要在寫入數(shù)據(jù)庫操作)
index.php????//php文件
file.csv
singi,20
lily,19
daming,23
index.php
/**
*?讀取csv文件,每讀取一行數(shù)據(jù),就插入數(shù)據(jù)庫
*/
//獲取數(shù)據(jù)庫實例
$dsn?=?'mysql:dbname=test;host=127.0.0.1';
$user?=?'root';
$password?=?'';
try?{
$db?=?new?PDO($dsn,?$user,?$password);
}?catch?(PDOException?$e)?{
echo?'Connection?failed:?'?.?$e-getMessage();
}
//讀取file.csv文件
if?(($handle?=?fopen("file.csv",?"r"))?!==?FALSE)?{
while?(($row?=?fgetcsv($handle,?1000,?","))?!==?FALSE)?{
//寫入數(shù)據(jù)庫
$sth?=?$db-prepare('insert?into?test?set?name=:name,age=:age');
$sth-bindParam(':name',$row[0],PDO::PARAM_STR,255);
$sth-bindParam(':age',$row[1],PDO::PARAM_INT);
$sth-execute();
}
fclose($handle);
}
數(shù)據(jù)表
CREATE?TABLE?`test`?(
`id`?INT(10)?UNSIGNED?NOT?NULL?AUTO_INCREMENT,
`name`?VARCHAR(255)?NULL?DEFAULT?''?COLLATE?'utf8mb4_bin',
`age`?INT(10)?NULL?DEFAULT?'0',
PRIMARY?KEY?(`id`)
)
COLLATE='utf8mb4_bin'
ENGINE=InnoDB;
運行結(jié)束后,數(shù)據(jù)庫中會插入csv中的三行數(shù)據(jù)
本文實例講述了PHP使用pdo連接access數(shù)據(jù)庫并循環(huán)顯示數(shù)據(jù)操作。分享給大家供大家參考,具體如下:
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抽象層獲取查詢結(jié)果,主要有三種方式:
(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()預(yù)處理執(zhí)行查詢
?php
//PDO::prepare()預(yù)處理執(zhí)行查詢
$res
=
$db-prepare("select
*
from
user");
$res-execute();
while
($row
=
$res-fetchAll())
{
print_r($row);
}
?
setAttribute()
方法是設(shè)置屬性,常用參數(shù)如下:
PDO::CASE_LOWER
--
強制列名是小寫
PDO::CASE_NATURAL
--
列名按照原始的方式
PDO::CASE_UPPER
--
強制列名為大寫
setFetchMode方法來設(shè)置獲取結(jié)果集的返回值的類型,常用參數(shù)如下:
PDO::FETCH_ASSOC
--
關(guān)聯(lián)數(shù)組形式
PDO::FETCH_NUM
--
數(shù)字索引數(shù)組形式
PDO::FETCH_BOTH
--
兩者數(shù)組形式都有,這是默認(rèn)的
PDO::FETCH_OBJ
--
按照對象的形式,類似于以前的
mysql_fetch_object()
對上面總結(jié)如下:
查詢操作主要是PDO::query()、PDO::exec()、PDO::prepare()。
PDO-query()
—
處理一條SQL語句,并返回一個“PDOStatement”
PDO-exec()
—
處理一條SQL語句,并返回所影響的條目數(shù)
PDO::prepare()主要是預(yù)處理操作,需要通過$rs-execute()來執(zhí)行預(yù)處理里面的SQL語句
最后介紹兩個常用的函數(shù):
(1)fetchColumn()獲取指定記錄里一個字段結(jié)果,默認(rèn)是第一個字段!
?php
$res
=
$db-query('select
*
from
user');
//獲取指定記錄里第二個字段結(jié)果
$col
=
$res-fetchColumn(1);
echo
$col;
?
(2)fetchAll(),從一個結(jié)果集中獲取數(shù)據(jù),然后存放在關(guān)聯(lián)數(shù)組中
?php
$res
=
$db-query('select
*
from
user');
$res_arr
=$res-fetchAll();
print_r($res_arr);
?
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《PHP基于pdo操作數(shù)據(jù)庫技巧總結(jié)》、《php+Oracle數(shù)據(jù)庫程序設(shè)計技巧總結(jié)》、《PHP+MongoDB數(shù)據(jù)庫操作技巧大全》、《php面向?qū)ο蟪绦蛟O(shè)計入門教程》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對大家PHP程序設(shè)計有所幫助。
您可能感興趣的文章:PHP使用PDO連接ACCESS數(shù)據(jù)庫PHP數(shù)據(jù)庫鏈接類(PDO+Access)實例分享php中mysql連接方式PDO使用詳解關(guān)于php連接mssql:pdo
odbc
sql
serverPhp中用PDO查詢Mysql來避免SQL注入風(fēng)險的方法php中在PDO中使用事務(wù)(Transaction)全新的PDO數(shù)據(jù)庫操作類php版(僅適用Mysql)php使用pdo連接并查詢sql數(shù)據(jù)庫的方法php使用pdo連接mssql
server數(shù)據(jù)庫實例PHP實現(xiàn)PDO的mysql數(shù)據(jù)庫操作類
這個簡單啊!首頁做個前臺輸入姓名和會員卡信息的頁面,我做個簡單的頁面給你看
!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "html xmlns="headmeta http-equiv="Content-Type" content="text/html; charset=utf-8" /title會員查詢系統(tǒng)/title/head bodyform id="form1" name="form1" method="post" action="test.php" p label for="name"/label input type="text" name="name" id="name" / /p p label for="vipid"/label input type="text" name="vipid" id="vipid" / /p p input type="submit" name="button" id="button" value="查詢" / /p/form/body/html然后我給你一個test.php的文件代碼:?php$name = trim($_POST['name']);$vipid = trim($_POST['vipid']);$con = mysql_connect("127.0.0.1","數(shù)據(jù)庫用戶名","數(shù)據(jù)庫密碼");if (!$con) { die('Could not connect: ' . mysql_error()); }$a = mysql_select_db("數(shù)據(jù)庫名字", $con);$sql = "select * from kh_customer where name = '$name' and vipid = '$vipid'";$result = mysql_query($sql);while($row = mysql_fetch_array($result)) { echo $row['name'] . " " . $row['data']; echo "br /"; }mysql_close($con);?
if?($strleng100){
//如果大于100條就每次寫入100,休息1秒,然后繼續(xù)寫,直到寫完為止
$write_count?=?floor($strleng/100);
while?($write_count??0){
for?($i=0;$i100;$i++){
echo?"INSERT?INTO?tbl_name?(a,b,c)?VALUES(1,2,3)";//寫100次就休息
}
//echo?"INSERT?INTO?tbl_name?(a,b,c)?VALUES(1,2,3),(4,5,6),(7,8,9);";這樣可以一次插入多條數(shù)據(jù),效率更高
//參考
$write_count?-=1?;
sleep(1);
echo?'休息1秒';
}
}
php 連接數(shù)據(jù)庫的幾種方式
$con = mysql_connect(服務(wù)器,服務(wù)器用戶名,服務(wù)器密碼默認(rèn)為“”)
mysql_select_db(數(shù)據(jù)庫,$con)選擇數(shù)據(jù)庫
mysql_query($sql,$con);
$con = mysqli_connect(服務(wù)器,服務(wù)器用戶名,服務(wù)器密碼默認(rèn)為“”,數(shù)據(jù)庫名)
$query = mysqli_query($conn,$sql);
$conn = new mysqli(服務(wù)器,服務(wù)器用戶名,服務(wù)器密碼默認(rèn)為“”,數(shù)據(jù)庫名);
$query = $conn-query($sql);
$sql="CREATE TABLE $table (
`字段_id` INT( 4 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`字段名` VARCHAR( 255 ) NOT NULL ,
`字段名` VARCHAR( 255 ) NOT NULL
)";
$query=mysqli_query($link,$sql);
if($query==true){
echo "成功";
}else{
echo "失敗";
}
網(wǎng)站標(biāo)題:php數(shù)據(jù)表實例,php創(chuàng)建數(shù)據(jù)表
網(wǎng)頁路徑:http://chinadenli.net/article45/dsepoei.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁設(shè)計公司、網(wǎng)站排名、定制網(wǎng)站、移動網(wǎng)站建設(shè)、網(wǎng)站收錄、企業(yè)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)