1. PHP調用三種資料庫的方法(3)
Oracle(甲骨文)是世界上最為流行的關系資料庫。它是大公司推崇的工業化的強有力的引擎。我們先看看其相關的函數:
(1)integer
ora_logon(string
user
,
string
password)
開始對一個Oracle資料庫伺服器的連接。
(2)integer
ora_open(integer
connection)
打開給出的連接的游標。
(3)integer
ora_do(integer
connection,
string
query)
在給出的連接上執行查詢。PHP生成一個指示器,解析查詢,並執行之。
(4)integer
ora_parse(integer
cursor,
string
query)
解析一個查詢並准備好執行。
(5)boolean
ora_exec(integer
cursor)
執行一個先前由ora_parse函數解析過的查詢。
(6)boolean
ora_fetch(integer
cursor)
此函數會使得一個執行過的查詢中的行被取到指示器中。這使得您可以調用ora_getcolumn函數。
(7)string
ora_getcolumn(integer
cursor,
integer
column)
返回當前的值。列由零開始的數字索引。
(8)boolean
ora_logoff(integer
connection)
斷開對資料庫伺服器的鏈接。
以下是向ORACLE資料庫插入數據的示常式序:
<html>
<head><title>向ORACLE資料庫中插入數據</title></head>
<body>
<form
action="<?echo
$PHP_SELF;?>"
method="post">
<table
border="1"
cellspacing="0"
cellpadding="0">
<tr>
<th>ID</th>
<th>name</th>
<th>Description</th>
</tr>
<tr>
<td><input
type="text"
name="name"
maxlength="50"
size="10"></td>
<td><input
type="text"
name="email"
maxlength="255"
size="30"></td>
<td><input
type="text"
name="Description"
maxlength="255"
size="50"></td>
</tr>
<tr
align="center">
<td
colspan="3"><input
type="submit"
value="提交"> <input
type="reset"
value="重寫"></td>
</tr>
</table>
</form>
<?
//先設置兩個環境變數ORACLE_HOME,ORACLE_SID
putenv("ORACLE_HOME=/oracle/app/oracle/proct/8.0.4");
putenv("ORACLE_SID=ora8");
//設置網頁顯示中文
putenv("NLS_LANG=Simplified_Chinese.zhs16cgb231280");
if($connection=ora_logon("scott","tiger"))
{
//庫表test有ID,name,Description三項
$sql
=
'insert
into
test(ID,name,Description)
values
';
$sql
.=
'(''
.
$ID
.
'',''
.
$name
.
'',''.
$Description
.
'')';
if($cursor=ora_do($connect,$sql))
{
print("insert
finished!");
}
$query
=
'select
*
from
test';
if($cursor=ora_do($connect,$query))
{
ora_fetch($cursor);
$content0=ora_getcolumn($cursor,0);
$content1=ora_getcolumn($cursor,1);
$content2=ora_getcolumn($cursor,2);
print("$content0");
print("$content1");
print("$content2");
ora_close($cursor);
}
ora_logoff($connection);
}
?>
</body>
</html>
2. phpstorm如何調用資料庫
打開phpstorm,打開Database窗口,如下圖:
配置mysql連接,如下圖:
填寫mysql地址,用戶名,密碼,如果沒有安裝驅動,要先安裝驅動
測試資料庫能否連接成功:
保存配置,保存時,會提示設置密碼:
讀取資料庫表,及根據條件查詢修改:
3. php中選擇打開資料庫的方法是
在mysql資料庫中,創建一個test資料庫,用於測試。
1、創建一個test資料庫。
2、使用mysql_connect()函數創建一個資料庫的連接。
3、再使用mysql_select_db()函數選擇要操作的資料庫test,並通過if語句判斷結果。
總結:
4. PHP網站怎麼連接到資料庫
常規方式
常規方式就是按部就班的讀取文件了。其餘的話和上述方案一致。
// 讀取配置文件內容
$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>
<!-- 為防止出現意外,請按照此標准順序書寫.其實也無所謂了 -->
<host>localhost</host>
<user>root</user>
<password>123456</password>
<db>test</db>
<port>3306</port></mysql>12345678910
解析
<?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>讀取資料庫配置文件信息出錯!</mark><br />" );
} return $dbconfig;
}
}
資料庫連接池
對於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 ( "<mark>utils.php文件丟失,無法進行配置文件的初始化操作!</mark><br />" );
}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>連接資料庫失敗!</mark><br />" );
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>資料庫連接池已滿</mark><br />" );
} else {
array_push ( $this->dbpool, $conn );
}
}
}
5. php 調用資料庫怎麼調用
<?php
mysql_connect("localhost","root","123456") //填寫mysql用戶名和密碼
or die("Could not connect to MySQL server!");
mysql_select_db("phpcms") //資料庫名
or die("Could not select database!");
mysql_query('set names "gbk"'); //資料庫內數據的編碼
?>
6. php怎麼把數據導入資料庫
需要PHP基礎知識和資料庫基礎知識。
以SQL為例。使用PHP MySQL 函數可以編輯資料庫。
mysql_connect() 函數打開MySQL 連接。舉例
<?php
$con = mysql_connect("localhost","mysql_user","mysql_pwd");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}// 一些代碼...mysql_close($con);
?>
mysql_connect()三個參數分別是伺服器名,連接賬號,連接密碼。
連接之後,可以使用mysql_select_db()設置要處理的資料庫,後面則是用資料庫語句處理數據。SQL語法簡介網頁鏈接