本文實例講述了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框架實現多數據庫連接,跨數據連接查詢操作示例
1、下載一個phpmyadin,看看phpmyadmin能不能登入mysql
如果能登陸,則表明是你的程序有問題
2、如果不能登陸,則查找libmysql.dll是否復制到c:\windows\system32下
則安裝mysql連接程序
3、500錯誤,請在IE-選項-高級-顯示錯誤打開,則可以顯示出錯信息
如果還不顯示錯誤提示,則編輯php.ini
把display_error
=
On
重啟web
常規方式
常規方式就是按部就班的讀取文件了。其余的話和上述方案一致。
// 讀取配置文件內容
$handle = fopen("filepath", "r"); ? ? ? ? ? ?$content = fread($handle, filesize("filepath"));123
PHP解析XML
上述兩種讀取文件,其實都是為了PHP解析XML來做準備的。關于PHP解析XML的方式的博客有很多。方式也有很多,像simplexml,XMLReader,DOM啦等等。但是對于比較小型的xml配置文件,simplexml就足夠了。
配置文件
?xml version="1.0" encoding="UTF-8" ?mysql
!-- 為防止出現意外,請按照此標準順序書寫.其實也無所謂了 --
hostlocalhost/host
userroot/user
password123456/password
dbtest/db
port3306/port/mysql12345678910
解析
?php/**
* 作為解析XML配置文件必備工具
*/class XMLUtil {
public static $dbconfigpath = "./db.config.xml"; ? ?public static function getDBConfiguration() {
$dbconfig = array (); ? ? ? ?try { ? ? ? ? ? ?// 讀取配置文件內容
$handle = fopen(self::$dbconfigpath, "r"); ? ? ? ? ? ?$content = fread($handle, filesize(self::$dbconfigpath)); ? ? ? ? ? ?// 獲取xml文檔根節點,進而獲取相關的數據庫信息
$mysql = simplexml_load_string($content); ? ? ? ? ? ?// 將獲取到的xml節點信息賦值給關聯數組,方便接下來的方法調用
$dbconfig['host'] = $mysql-host; ? ? ? ? ? ?$dbconfig['user'] = $mysql-user; ? ? ? ? ? ?$dbconfig['password'] = $mysql-password; ? ? ? ? ? ?$dbconfig['db'] = $mysql-db; ? ? ? ? ? ?$dbconfig['port'] = $mysql-port; ? ? ? ? ? ?// 將配置信息以關聯數組的形式返回
return $dbconfig;
} catch ( Exception $e ) { ? ? ? ? ? ?throw new RuntimeException ( "mark讀取數據庫配置文件信息出錯!/markbr /" );
} ? ? ? ?return $dbconfig;
}
}1234567891011121314151617181920212223242526272829
數據庫連接池
對于PHP程序而言,優化永無止境。而數據庫連接池就在一定程度上起到了優化的作用。其使得對用戶的每一個請求而言,無需每次都像數據庫申請鏈接資源。而是通過已存在的數據庫連接池中的鏈接來返回,從時間上,效率上,都是一個大大的提升。
于是,這里簡單的模擬了一下數據庫連接池的實現。核心在于維護一個“池”。
從池子中取,用畢,歸還給池子。
?php/**x
* ?PHP中的數據庫 工具類設計
* ?郭璞
* ?2016年12月23日
*
**/class DbHelper { ? ?private $dbconfig; ? ?private $dbpool; ? ?public $poolsize; ? ?public function __construct($poolsize = 20) { ? ? ? ?if (! file_exists ( "./utils.php" )) { ? ? ? ? ? ?throw new RuntimeException ( "markutils.php文件丟失,無法進行配置文件的初始化操作!/markbr /" );
}else {
require './utils.php';
} ? ? ? ?// 初始化 配置文件信息
$this-dbconfig = XMLUtil::getDBConfiguration (); ? ? ? ?// 準備好數據庫連接池“偽隊列”
$this-poolsize = $poolsize;
$this-dbpool = array (); ? ? ? ?for($index = 1; $index = $this-poolsize; $index ++) {
$conn = mysqli_connect ( $this-dbconfig ['host'], $this-dbconfig ['user'], $this-dbconfig ['password'], $this-dbconfig ['db'] ) or die ( "mark連接數據庫失敗!/markbr /" );
array_push ( $this-dbpool, $conn );
}
} ? ?/**
* 從數據庫連接池中獲取一個數據庫鏈接資源
*
* @throws ErrorException
* @return mixed
*/
public function getConn() { ? ? ? ?if (count ( $this-dbpool ) = 0) { ? ? ? ? ? ?throw new ErrorException ( "mark數據庫連接池中已無鏈接資源,請稍后重試!/mark" );
} else { ? ? ? ? ? ?return array_pop ( $this-dbpool );
}
} ? ?/**
* 將用完的數據庫鏈接資源放回到數據庫連接池
*
* @param unknown $conn
* @throws ErrorException
*/
public function release($conn) { ? ? ? ?if (count ( $this-dbpool ) = $this-poolsize) { ? ? ? ? ? ?throw new ErrorException ( "mark數據庫連接池已滿/markbr /" );
} else {
array_push ( $this-dbpool, $conn );
}
}
}
首先搭建PHP開發運行環境,安裝完成后再使用PHP連接mysql,代碼操作步驟如下:
下載php_mysql.dll擴展,放到ext文件夾下,如果存在則跳過;
打開php.ini配置文件,去掉extension=php_mysql.dll項前面的分號,如果已取掉則跳過此步驟;
然后運行phpinfo();如果存在mysql項,則說明已經開啟mysql擴展。
php連接mysql數據庫操作:
運行結果:
網頁標題:php項目連接數據庫配置 php項目連接mysql數據庫
瀏覽路徑:http://vcdvsql.cn/article46/dopjjeg.html
成都網站建設公司_創新互聯,為您提供自適應網站、全網營銷推廣、企業網站制作、關鍵詞優化、品牌網站設計、Google
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯