PHP程序中使用adodb連接不同數(shù)據(jù)庫的代碼實例
adodb.inc.php文件需要去下載一個adodb,放在相應(yīng)的位置,然后在php中include進來就可以。
連接oracle數(shù)據(jù)庫
<?php
include("adodb/adodb.inc.php"); //包含adodb類庫文件
$conn = &NewADOConnection('oci8');
$conn->Connect($DBServer,$DBUser,$DBPass);
?>
連接PostgreSQL數(shù)據(jù)庫
<?php
include("adodb/adodb.inc.php"); //包含adodb類庫文件
$conn = NewADOConnection('postgres');
$conn->Connect('localhost', 'root', 'pass', 'mydb');
?>
連接PostgreSQL數(shù)據(jù)庫
<?php
include("adodb/adodb.inc.php"); //包含adodb類庫文件
$conn = NewADOConnection(' postgres ');
$conn->Connect('host=localhost port=5432 dbname=mydb'); //連接PostgreSQL數(shù)據(jù)庫
?>
連接Mysql數(shù)據(jù)庫
<?php
include("adodb/adodb.inc.php"); //包含adodb類庫文件
$conn = NewADOConnection('mysql://root:1981427@localhost/test'); //連接MySQL數(shù)據(jù)庫
?>
連接MySQL數(shù)據(jù)庫
<?php
include("adodb/adodb.inc.php"); //包含adodb類庫文件
$conn = NewADOConnection('mysql');
$conn->Connect('localhost', 'root', '1981427', 'test'); //連接MySQL數(shù)據(jù)庫
?>
連接Access數(shù)據(jù)庫
<?php
include("adodb/adodb.inc.php"); //包含adodb類庫文件
$conn = NewADOConnection('access'); //連接Access數(shù)據(jù)庫
$conn->Connect("Driver={Microsoft Access Driver (*.mdb)};Dbq=d://mydb.mdb;Uid=Admin;Pwd=;");
?>
連接SQL Server數(shù)據(jù)庫,通過ODBC連接
<?php
include("adodb/adodb.inc.php"); //包含adodb類庫文件
$conn=NewADOConnection('odbc_mssql'); //連接SQL Server數(shù)據(jù)庫
$conn->Connect("Driver={SQL Server};Server=localhost;Database=mydb;",'username','password');
?>
連接SQL Server數(shù)據(jù)庫
<?php
include("adodb/adodb.inc.php"); //包含adodb類庫文件
$conn=NewADOConnection('mssql'); //連接SQL Server數(shù)據(jù)庫
$conn->Connect("localhost', 'username', 'password', 'mydb');
?>
連接DB2數(shù)據(jù)庫
<?php
include("adodb/adodb.inc.php"); //包含adodb類庫文件
$conn=NewADOConnection('db2'); //連接DB2數(shù)據(jù)庫
$conn->Connect("driver={IBM db2 odbc DRIVER};database=mydb;hostname=localhost;port=50000;
protocol=TCPIP;uid=root; pwd=pass");
?>
下面來看一個PHP編程中的實例運用:
首先定義一個數(shù)據(jù)庫連接函數(shù),支持多種不同的數(shù)據(jù)庫,傳入一個SQL語句,將執(zhí)行結(jié)果返回,代碼如下:
public function DBConnect($DBType,$DBServer,$DBUser,$DBPass,$DBName,$sqlStr)
{
$StrCon;
$result;
$conn;
$output="";
switch($DBType)
{
Case 0: //Sql Server
//$StrCon ="Driver={SQL Server};Server=$DBServer;Database=$DBName;Uid=$DBUser;Pwd=$DBPass;";
//創(chuàng)建SQL Server數(shù)據(jù)庫連接
$conn= &NewADOConnection('odbc_mssql');
$conn->Connect("Driver={SQL Server};Server=".$DBServer.";Database=".$DBName.";Uid=".$DBuser.";Pwd=".$DBPass.";");
break;
Case 1: //Oracle
//$StrCon ="Provider=MSDAORA.1;Data Source=$DBServer;Password=$DBPass;User ID=$DBUser;Persist Security Info=True;";
//創(chuàng)建oracle數(shù)據(jù)庫連接
$conn = &NewADOConnection('oci8');
$conn->Connect($DBServer,$DBUser,$DBPass);
break;
Case 2: //Access
//$StrCon ="Driver={Microsoft Access Driver (*.mdb)};Dbq=$DBName;Uid=$DBUser;Pwd=$DBPass;";
//創(chuàng)建Access數(shù)據(jù)庫連接
$conn = &NewADOConnection('access');
$conn->Connect("Driver={Microsoft Access Driver (*.mdb)};Dbq=".$DBName.";Uid=".$DBUser.";Pwd=".$DBPass.";");
break;
Case 3: //mysql
//創(chuàng)建mysql數(shù)據(jù)庫連接
$conn = NewADOConnection('mysql');
$conn->Connect($DBServer,$DBUser,$DBPass,$DBName);
//$conn = &NewADOConnection("mysql://".$DBUser.":".$DBPass."@".$DBServer."/".$DBName);
break;
default:
echo "抱歉,暫不支持此數(shù)據(jù)庫,請檢查配置的數(shù)據(jù)庫類型!";
die();
break;
}
//執(zhí)行查詢操作
$result=$conn->Execute($sqlStr);
//數(shù)據(jù)庫查詢失敗處理
if ($result==false)
{
die("查詢失敗");
}
//輸出查詢結(jié)果
while(!$result->EOF)
{
$max=$result->fieldcount();
//$output=array();
for($i=0;$i<$max;$i++)
{
//echo $result->fields[$i].' ';
$res[$i]=$result->fields[$i].' ';
$output=$output.$res[$i];
}
$result->MoveNext();
}
$output=trim($output);
//echo $output;
//關(guān)閉數(shù)據(jù)庫連接
$conn->Close();
return $output;
}
定義一個函數(shù),指明需要使用的數(shù)據(jù)庫類型,數(shù)據(jù)庫用戶名和密碼等,傳入SQL語句,調(diào)用上面定義的數(shù)據(jù)庫連接方法,執(zhí)行SQL語句。
public function ExecuteSql($sqlStr)
{
$DBType=1;
$DBServer="arron";
//數(shù)據(jù)庫用戶名,不要使用sys這個超級用戶
$DBUser="system";
$DBPass="abcde";
$DBName="";
//$sqlStr="SELECT * FROM func;";
$myExpectStr=$this->DBConnect($DBType,$DBServer,$DBUser,$DBPass,$DBName,$sqlStr);
return $myExpectStr;
}
}
相關(guān)文章
codeigniter數(shù)據(jù)庫操作函數(shù)匯總
網(wǎng)上倒是有不少Codeigniter數(shù)據(jù)庫操作的介紹,這里做一個匯總,需要的朋友可以參考下2014-06-06
淺析THINKPHP的addAll支持的最大數(shù)據(jù)量
這篇文章主要介紹了THINKPHP的addAll支持的最大數(shù)據(jù)量,需要的朋友可以參考下2015-02-02

