本文實例講述了php使用mysqli和pdo擴展,測試對比mysql數據庫的執行效率。分享給大家供大家參考,具體如下:
創新互聯公司主要為客戶提供服務項目涵蓋了網頁視覺設計、VI標志設計、全網營銷推廣、網站程序開發、HTML5響應式網站建設公司、手機網站制作設計、微商城、網站托管及網站建設維護、WEB系統開發、域名注冊、國內外服務器租用、視頻、平面設計、SEO優化排名。設計、前端、后端三個建站步驟的完善服務體系。一人跟蹤測試的建站服務標準。已經為成都酒店設計行業客戶提供了網站營銷推廣服務。
?php
/**
*
測試pdo和mysqli的執行效率
*/
header("Content-type:text/html;charset=utf-8");
//通過pdo鏈接數據庫
$pdo_startTime
=
microtime(true);
$pdo
=
new
PDO("mysql:host=localhost;dbname=test","root","1234",array(PDO::MYSQL_ATTR_INIT_COMMAND
=
"SET
NAMES'utf8';"));
for($i=1;$i=100;$i++){
$title
=
"pdo標題".$i;
$content
=
"pdo內容".$i;
$addtime
=
time();
$user_id
=
$i;
$pdo_sql
=
"INSERT
INTO
`article`(`title`,`content`,`addtime`,`user_id`)
VALUES(:title,:content,:addtime,:user_id)";
$sth
=
$pdo-prepare($pdo_sql);
$sth-bindParam(':title',$title);
$sth-bindParam(':content',$content);
$sth-bindParam(':addtime',$addtime);
$sth-bindParam(':user_id',$user_id);
$sth-execute();
}
$pdo_endTime
=
microtime(true);
$pdo_time
=
$pdo_endTime
-
$pdo_startTime;
echo
$pdo_time;
echo
"hr/";
//通過mysql鏈接數據庫
$mysqli_startTime
=
microtime(true);
$mysqli
=
mysqli_connect("localhost","root","1234","test")
or
die("數據連接失敗");
mysqli_query($mysqli,"set
names
utf8");
for($i=1;$i=100;$i++){
$title
=
"mysqli標題".$i;
$content
=
"mysqli內容".$i;
$addtime
=
time();
$user_id
=
$i;
$sql
=
"INSERT
INTO
`article`(`title`,`content`,`addtime`,`user_id`)
VALUES('".$title."','".$content."',".$addtime.",".$user_id.")";
mysqli_query($mysqli,$sql);
}
$mysqli_endTime
=
microtime(true);
$mysqli_time
=
$mysqli_endTime
-
$mysqli_startTime;
echo
$mysqli_time;
echo
"hr/";
if($pdo_time
$mysqli_time){
echo
"pdo的執行時間是mysqli的".round($pdo_time/$mysqli_time)."倍";
}else{
echo
"mysqli的執行時間是pdo的".round($mysqli_time/$pdo_time)."倍";
}
測試結果:其實經過多次測試,pdo和mysqli的執行效率差不多。
更多關于PHP相關內容感興趣的讀者可查看本站專題:《PHP基于pdo操作數據庫技巧總結》、《php+mysqli數據庫程序設計技巧總結》、《php面向對象程序設計入門教程》、《php字符串(string)用法總結》、《php+mysql數據庫操作入門教程》及《php常見數據庫操作技巧匯總》
希望本文所述對大家PHP程序設計有所幫助。
您可能感興趣的文章:php使用mysqli和pdo擴展,測試對比連接mysql數據庫的效率完整示例php中數據庫連接方式pdo和mysqli對比分析php中關于mysqli和mysql區別的一些知識點分析php操作mysqli(示例代碼)php封裝的mysqli類完整實例PHP以mysqli方式連接類完整代碼實例php簡單解析mysqli查詢結果的方法(2種方法)php中mysql連接方式PDO使用詳解Php中用PDO查詢Mysql來避免SQL注入風險的方法php
mysql
PDO
查詢操作的實例詳解PHP實現PDO的mysql數據庫操作類
sybase_connect連上數據庫。
語法: int sybase_connect(string [servername], string [username], string [password]);
返回值: 整數函數種類: 數據庫功能 本函數用來打開與 Sybase 數據庫的連接。
參數 servername 為欲連上的數據庫服務器名稱。
參數 username 及 password 可省略,分別為連接使用的帳號及密碼。
使用本函數需注意早點關閉數據庫,以減少系統的負擔。
連接成功則返回數據庫的連接代號,失敗返回 false 值。
本文實例講述了PHP實現的pdo連接數據庫并插入數據功能。分享給大家供大家參考,具體如下:
創建配置文件
pdo_config.php
?php
$db_Type
=
"mysql";//數據庫類型
$host
=
"localhost";//主機名
$dbName
=
"test";//數據庫名
$userName
=
"root";//用戶名
$password
=
"root";//密碼
$dsn
=
"{$db_Type}:host={$host};dbname={$dbName}";
?
pdo插入數據庫
pdo_insert.php
?php
header('Content-type:text/html;
charset=utf-8');
require
'pdo_config.php';
try{
$pdo
=
new
PDO
($dsn,$userName,$password);//創建一個連接對象
$pdo-exec('set
names
utf8');//設置編碼
$sql
=
"INSERT
student
(name,email)
VALUES
('李四','123@qq.com')";
$pdo-exec($sql);
}catch
(PDOException
$e){
die('操作失敗'.$e-getMessage());
}
//關閉連接
$pdo
=
null;
?
更多關于PHP相關內容感興趣的讀者可查看本站專題:《PHP基于pdo操作數據庫技巧總結》、《php+mysqli數據庫程序設計技巧總結》、《php面向對象程序設計入門教程》、《php字符串(string)用法總結》、《php+mysql數據庫操作入門教程》及《php常見數據庫操作技巧匯總》
希望本文所述對大家PHP程序設計有所幫助。
您可能感興趣的文章:關于php連接mssql:pdo
odbc
sql
serverPHP5中使用PDO連接數據庫的方法PHP中PDO連接數據庫中各種DNS設置方法小結ThinkPHP框架基于PDO方式連接數據庫操作示例PHP使用ODBC連接數據庫的方法tp5(thinkPHP5)框架連接數據庫的方法示例PHP7使用ODBC連接SQL
Server2008
R2數據庫示例【基于thinkPHP5.1框架】tp5(thinkPHP5)操作mongoDB數據庫的方法thinkPHP5實現數據庫添加內容的方法tp5(thinkPHP5)框架數據庫Db增刪改查常見操作總結PHP利用pdo_odbc實現連接數據庫示例【基于ThinkPHP5.1搭建的項目】
本文實例講述了PHP利用pdo_odbc實現連接數據庫。分享給大家供大家參考,具體如下:
目的:從sql
server數據庫里面把某個視圖文件調用出來,以鍵值對的方式顯示在頁面上。
利用pdo
odbc來實現PHP連接數據庫:
在PHP配置文件里面開啟pdo_odbc.dll服務。重啟Apache服務器。
在ThinkPHP5.1的項目中在模塊里添加config添加規定好的樣式數據庫:
代碼如下:
?php
return
[
//
數據庫類型
'type'
=
'sqlsrv',
//
服務器地址
'hostname'
=
'localhost',
//
數據庫名
'database'
=
'mysql',
//
用戶名
'username'
=
'sa',
//
密碼
'password'
=
'123456',
//
端口
'hostport'
=
'',
//
連接dsn
'dsn'
=
'odbc:Driver={SQL
Server};Server=localhost;Database=mysql',
//
數據庫連接參數
'params'
=
[],
//
數據庫編碼默認采用utf8
'charset'
=
'utf8',
//
數據庫表前綴
'prefix'
=
'',
//
數據庫調試模式
'debug'
=
true,
//
數據庫部署方式:0
集中式(單一服務器),1
分布式(主從服務器)
'deploy'
=
0,
//
數據庫讀寫是否分離
主從式有效
'rw_separate'
=
false,
//
讀寫分離后
主服務器數量
'master_num'
=
1,
//
指定從服務器序號
'slave_no'
=
'',
//
是否嚴格檢查字段是否存在
'fields_strict'
=
true,
//
數據集返回類型
'resultset_type'
=
'array',
//
自動寫入時間戳字段
'auto_timestamp'
=
false,
//
時間字段取出后的默認時間格式
'datetime_format'
=
'Y-m-d
H:i:s',
//
是否需要進行SQL性能分析
'sql_explain'
=
false,
//
Builder類
'builder'
=
'',
//
Query類
'query'
=
'\\think\\db\\Query',
//
是否需要斷線重連
'break_reconnect'
=
false,
//
斷線標識字符串
'break_match_str'
=
[],
];
?
在控制器controller里面建一個控制文件Test.php
代碼如下:
?php
namespace
app\index\controller;
use
think\Db;
use
think\Controller;
class
Test
extends
Controller
{
public
function
zz(){
$data=Db::view('View_2')-select();
echo
json_encode($data);
}
}
?
最后調用入口文件即可訪問。
我的效果:
[{"111":"123","1112":"LLP","232":"1","ROW_NUMBER":"1"},{"111":"123","1112":"BB","232":"2","ROW_NUMBER":"2"}]
更多關于thinkPHP相關內容感興趣的讀者可查看本站專題:《ThinkPHP入門教程》、《thinkPHP模板操作技巧總結》、《ThinkPHP常用方法總結》、《codeigniter入門教程》、《CI(CodeIgniter)框架進階教程》、《Zend
FrameWork框架入門教程》及《PHP模板技術總結》。
希望本文所述對大家基于ThinkPHP框架的PHP程序設計有所幫助。
您可能感興趣的文章:ThinkPHP實現多數據庫連接的解決方法tp5(thinkPHP5)框架實現多數據庫查詢的方法ThinkPHP3.1新特性之多數據庫操作更加完善tp5(thinkPHP5)框架連接數據庫的方法示例PHP7使用ODBC連接SQL
Server2008
R2數據庫示例【基于thinkPHP5.1框架】thinkPHP5實現的查詢數據庫并返回json數據實例tp5(thinkPHP5)操作mongoDB數據庫的方法tp5(thinkPHP5)框架數據庫Db增刪改查常見操作總結thinkPHP5框架實現多數據庫連接,跨數據連接查詢操作示例
思路:
讀取csv文件,每讀取一行數據,就插入數據庫
示例
文件夾結構
/
file.csv????//csv大文件,這里只模擬三行數據,不考慮運行效率(PS:csv文件格式很簡單,文件一般較小,解析很快,運行效率的瓶頸主要在寫入數據庫操作)
index.php????//php文件
file.csv
singi,20
lily,19
daming,23
index.php
/**
*?讀取csv文件,每讀取一行數據,就插入數據庫
*/
//獲取數據庫實例
$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)?{
//寫入數據庫
$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);
}
數據表
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;
運行結束后,數據庫中會插入csv中的三行數據
本文實例講述了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數據庫操作類
當前題目:php操作數據庫例子,php操作oracle數據庫
URL地址:http://vcdvsql.cn/article38/hshesp.html
成都網站建設公司_創新互聯,為您提供App開發、全網營銷推廣、軟件開發、網站改版、響應式網站、小程序開發
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯