?php
創新互聯-專業網站定制、快速模板網站建設、高性價比依安網站開發、企業建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式依安網站制作公司更省心,省錢,快速模板網站建設找我們,業務覆蓋依安地區。費用合理售后完善,10年實體公司更值得信賴。
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"'); //數據庫內數據的編碼
?
常規方式
常規方式就是按部就班的讀取文件了。其余的話和上述方案一致。
// 讀取配置文件內容
$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
$con
=?mysql_connect("localhost","root","abc123");
/*
localhost
是服務器
root
是用戶名?abc123
是密碼*/?
if
(!$con)
{
die("數據庫服務器連接失敗");
}
/*?這就是一個邏輯非判斷,如果錯誤就輸出括號里的字符串
*/?
@mysql_select_db("a",?$con);?
/*?選擇mysql服務器里的一個數據庫,假設你的數據庫名為?a*/?
$sql?=?"SELECT?*?FROM
qq";?
/*
定義變量sql,?"SELECT?*?FROM?qq"
是SQL指令,表示選取表qq中的數據?*/?
$result
=?mysql_query($sql);
//執行SQL語句,獲得結果集?
/*下面就是選擇性的輸出打印了,由于不清楚你的具體情況給你個表格打印吧*/
//打印表格?
echo
"table
border=1";?
while(
$row
=
mysql_fetch_array($result)
)
/*逐行獲取結果集中的記錄,得到數組row?*/
{
/*數組row的下標對應著數據庫中的字段值?*/
$id
=
$row['id'];?
$name
=
$row['name'];?
$sex
=
$row['sex'];?
echo
"tr";?
echo
"td$id/td";?
echo
"td$name/td";?
echo
"td$sex/td";?
echo
"/tr";?
}?
echo
"table
/";?
?
如果你的switch是表頭,就定義這個表頭字段,然后輸出。
你可以去后盾人平臺看看,里面的東西不錯
我說一下幾個步驟:
1、首先你得有一個存儲這些數據的數據庫表,比如數據庫表的結構是這樣的。
數據庫表名為:user
字段:編號(id),姓名(name),手機(mobile),產品名稱(productName) 主鍵為id
2、實現你需要的功能:
第一步:你需要連接數據庫,有一個連接數據庫的文件:conn.php。內容如下:
// 我假設你的數據庫是mysql的,假設你的數據庫用戶名為root,密碼為123456,根據你數據庫的實際情況改寫成你的。數據庫名稱假設為db_889888658
?php
$conn=mysql_connect("localhost","root","123456") or die("數據庫連接失敗,請檢查用戶名或密碼");
mysql_select_db("db_889888658",$conn);
mysql_query("SET NAMES 'gb2312'");
?
第二步:你需要一個添加數據的表單,就相當于一個注冊或添加數據的頁面。如文件為:add.html內容如下:
form action="reg.php" method="post"
input type="text" name="name"br/
input type="text" name="mobile"br/
input type="text" name="productName"/br
input type="submit" name="submit" value="添加數據"
/form
第三步:寫一個處理你表單提交的數據的文件reg.php。內容如下:
?php
include "conn.php";
if(isset($_POST["submit"])){
$name=$_POST["name"];
$mobile=$_POST["mobile"];
$productName=$_POST["productName"];
$sql="INSERT INTO 'user'(id,name,mobile,productName) VALUES (NULL,$name,$mobile,$productName)";
$query=mysql_query($sql);
$num=mysql_affected_rows($conn);
if($num=1){
echo "scriptalert('數據添加成功');location.href='add.html';/script";
}else{
echo "scriptalert('數據添加失敗');history.back();/script";
}
}
?
第四步,第三步已經實現你說的第一個功能。下面說一下你的第二個功能。寫一個表單,輸入你要查詢的手機號,點擊“查詢”按鈕查詢你想要的字段。
?php
if($_POST["submit"]){
$mobile=$_POST["mobile"];
if(!empty($mobile)){
include "conn.php";
$sql="SELECT * FROM 'user' WHERE 'mobile'='$mobile'";
$query=mysql_query($sql);
while($rs=mysql_fetch_array($query)){
$str="查詢結果:br/";
$str.="用戶名:".$rs["name"]."?";
$str.="產品名:".$rs["name"]."?";
}
echo "您查詢的手機號為".$mobile."的數據信息如下:br/";
echo $str;
}else{
echo "請輸入手機號";
}
}
?
form action="" method="post"
請輸入您要查詢的手機號:input type="text" name="mobile" input type="submit" name="submit" value="查詢"
/form
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
headtitle向ORACLE數據庫中插入數據/title/head
body
form
action="?echo
$PHP_SELF;?"
method="post"
table
border="1"
cellspacing="0"
cellpadding="0"
tr
thID/th
thname/th
thDescription/th
/tr
tr
tdinput
type="text"
name="name"
maxlength="50"
size="10"/td
tdinput
type="text"
name="email"
maxlength="255"
size="30"/td
tdinput
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/product/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
文章題目:php連接數據庫調用數據 怎么用php連接數據庫
鏈接URL:http://m.kartarina.com/article46/hgjieg.html
成都網站建設公司_創新互聯,為您提供建站公司、手機網站建設、網站制作、做網站、網站內鏈、營銷型網站建設
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯