php數(shù)據(jù)訪問對象 php獲取對象的屬性

PHP數(shù)組轉(zhuǎn)對象之后,怎么用對象的方式訪問數(shù)據(jù)

這里定義2個php匿名對象和數(shù)組相互轉(zhuǎn)換的函數(shù),代碼如下:

創(chuàng)新互聯(lián)建站長期為上1000家客戶提供的網(wǎng)站建設服務,團隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為雞西梨樹企業(yè)提供專業(yè)的成都做網(wǎng)站、成都網(wǎng)站制作,雞西梨樹網(wǎng)站改版等技術(shù)服務。擁有十年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。

function array2object($array) {

if (is_array($array)) { $obj = new StdClass(); foreach ($array as $key = $val){ $obj-$key = $val; } } else { $obj = $array; } return $obj;}function object2array($object) { if (is_object($object)) { foreach ($object as $key = $value) { $array[$key] = $value; } } else { $array = $object; } return $array;}

用法示例如下:

$array = array('foo' = 'bar','one' = 'two','three' = 'four');$obj = array2object($array);print $obj-one; // output's "two"$arr = object2array($obj);print $arr['foo']; // output's bar

PHP訪問MySQL數(shù)據(jù)庫的步驟。

PHP訪問MySQL數(shù)據(jù)庫:

因為連接數(shù)據(jù)庫需要較長的時間和較大的資源開銷,所以如果在多個網(wǎng)頁中都要頻繁地訪問數(shù)據(jù)庫,則可以建立與數(shù)據(jù)庫的持續(xù)連接。即調(diào)用mysql_pconnect()代替mysql_connect()。

基本步驟:

1.連接服務器:mysql_connect();

2.選擇數(shù)據(jù)庫:mysql_select_db();

3.執(zhí)行SQL語句:mysql_query();

查詢:select

顯示:show

插入:insert into

更新:update

刪除:delete

4.關(guān)閉結(jié)果集:mysql_free_result($result);

5.關(guān)閉數(shù)據(jù)庫:mysql_close($link);

pdo是什么意思?

PDO(PHP Data Objects)是一種在PHP里連接數(shù)據(jù)庫的使用接口。PDO與mysqli曾經(jīng)被建議用來取代原本PHP在用的mysql相關(guān)函數(shù),基于數(shù)據(jù)庫使用的安全性,因為后者欠缺對于SQL注入的防護。

PHP 數(shù)據(jù)對象(PDO) 擴展為PHP訪問數(shù)據(jù)庫定義了一個輕量級的一致接口。實現(xiàn) PDO 接口的每個數(shù)據(jù)庫驅(qū)動可以公開具體數(shù)據(jù)庫的特性作為標準擴展功能。 注意利用 PDO 擴展自身并不能實現(xiàn)任何數(shù)據(jù)庫功能;必須使用一個具體數(shù)據(jù)庫的 PDO 驅(qū)動來訪問數(shù)據(jù)庫服務。

相關(guān)信息:

PDO 提供了一個數(shù)據(jù)訪問抽象層,這意味著,不管使用哪種數(shù)據(jù)庫,都可以用相同的函數(shù)(方法)來查詢和獲取數(shù)據(jù)。 PDO不提供數(shù)據(jù)庫抽象層;它不會重寫 SQL,也不會模擬缺失的特性。如果需要的話,應該使用一個成熟的抽象層。

從 PHP 5.1開始附帶了 PDO,在 PHP 5.0 中是作為一個 PECL 擴展使用。 PDO 需要PHP 5核心的新OO特性,因此不能在較早版本的 PHP 上運行。

為什么 PHP 應該使用 PDO 方式訪問數(shù)據(jù)庫

 很多程序員都學習過如何使用 MySQL 或 MySQLi 擴展訪問數(shù)據(jù)庫。在 PHP 5.1 中,有一個更好的方法。 PHP Data Objects (PDO) 提供了很多預處理語句的方法,且使用對象將使你的工作更有成效!

PDO 介紹

“PDO – PHP Data Objects – 是一個對多種數(shù)據(jù)庫提供統(tǒng)一操作方法的數(shù)據(jù)庫訪問層?!?/p>

它并不具備數(shù)據(jù)庫特有的語法,但它將使切換數(shù)據(jù)庫和平臺更加容易,多數(shù)情況下,只需要簡單修改鏈接字符串。

這并非一篇完整教導如何使用SQL的教程。它重要為那些現(xiàn)今仍在使用 mysql 或 mysqli 擴展的人,幫助他們躍至更具可移植性和強力的 PDO。

數(shù)據(jù)庫支持

此擴展可以使用 PDO 驅(qū)動編寫過的所有數(shù)據(jù)庫。在本文書寫時,下面的數(shù)據(jù)庫支持已經(jīng)實現(xiàn):

PDO_DBLIB ( FreeTDS / Microsoft SQL Server / Sybase )

PDO_FIREBIRD ( Firebird/Interbase 6 )

PDO_IBM ( IBM DB2 )

PDO_INFORMIX ( IBM Informix Dynamic Server )

PDO_MYSQL ( MySQL 3.x/4.x/5.x )

PDO_OCI ( Oracle Call Interface )

PDO_ODBC ( ODBC v3 (IBM DB2, unixODBC and win32 ODBC) )

PDO_PGSQL ( PostgreSQL )

PDO_SQLITE ( SQLite 3 and SQLite 2 )

PDO_4D ( 4D )

你的系統(tǒng)不會也不必支持所有上面的驅(qū)動;下面是一個快速檢查所支持數(shù)據(jù)庫的方法:

print_r(PDO::getAvailableDrivers());

連接

不同數(shù)據(jù)庫的連接方法可能稍有不同,下面是一些較為流行的數(shù)據(jù)庫連接方法。你將注意到,雖然數(shù)據(jù)庫類型不同,前三種數(shù)據(jù)庫的連接方式是相同的——而 SQLite 使用自己的語法。

PHP訪問MYSQL數(shù)據(jù)庫封裝類(附函數(shù)說明)

復制代碼

代碼如下:

?php

/*

MYSQL

數(shù)據(jù)庫訪問封裝類

MYSQL

數(shù)據(jù)訪問方式,php4支持以mysql_開頭的過程訪問方式,php5開始支持以mysqli_開頭的過程和mysqli面向?qū)ο?/p>

訪問方式,本封裝類以mysql_封裝

數(shù)據(jù)訪問的一般流程:

1,連接數(shù)據(jù)庫

mysql_connect

or

mysql_pconnect

2,選擇數(shù)據(jù)庫

mysql_select_db

3,執(zhí)行SQL查詢

mysql_query

4,處理返回的數(shù)據(jù)

mysql_fetch_array

mysql_num_rows

mysql_fetch_assoc

mysql_fetch_row

etc

*/

class

db_mysql

{

var

$querynum

=

;

//當前頁面進程查詢數(shù)據(jù)庫的次數(shù)

var

$dblink

;

//數(shù)據(jù)庫連接資源

//鏈接數(shù)據(jù)庫

function

connect($dbhost,$dbuser,$dbpw,$dbname='',$dbcharset='utf-8',$pconnect=0

,

$halt=true)

{

$func

=

empty($pconnect)

?

'mysql_connect'

:

'mysql_pconnect'

;

$this-dblink

=

@$func($dbhost,$dbuser,$dbpw)

;

if

($halt

!$this-dblink)

{

$this-halt("無法鏈接數(shù)據(jù)庫!");

}

//設置查詢字符集

mysql_query("SET

character_set_connection={$dbcharset},character_set_results={$dbcharset},character_set_client=binary",$this-dblink)

;

//選擇數(shù)據(jù)庫

$dbname

@mysql_select_db($dbname,$this-dblink)

;

}

//選擇數(shù)據(jù)庫

function

select_db($dbname)

{

return

mysql_select_db($dbname,$this-dblink);

}

//執(zhí)行SQL查詢

function

query($sql)

{

$this-querynum++

;

return

mysql_query($sql,$this-dblink)

;

}

//返回最近一次與連接句柄關(guān)聯(lián)的INSERT,UPDATE

或DELETE

查詢所影響的記錄行數(shù)

function

affected_rows()

{

return

mysql_affected_rows($this-dblink)

;

}

//取得結(jié)果集中行的數(shù)目,只對select查詢的結(jié)果集有效

function

num_rows($result)

{

return

mysql_num_rows($result)

;

}

//獲得單格的查詢結(jié)果

function

result($result,$row=0)

{

return

mysql_result($result,$row)

;

}

//取得上一步

INSERT

操作產(chǎn)生的

ID,只對表有AUTO_INCREMENT

ID的操作有效

function

insert_id()

{

return

($id

=

mysql_insert_id($this-dblink))

=

?

$id

:

$this-result($this-query("SELECT

last_insert_id()"),

0);

}

//從結(jié)果集提取當前行,以數(shù)字為key表示的關(guān)聯(lián)數(shù)組形式返回

function

fetch_row($result)

{

return

mysql_fetch_row($result)

;

}

//從結(jié)果集提取當前行,以字段名為key表示的關(guān)聯(lián)數(shù)組形式返回

function

fetch_assoc($result)

{

return

mysql_fetch_assoc($result);

}

//從結(jié)果集提取當前行,以字段名和數(shù)字為key表示的關(guān)聯(lián)數(shù)組形式返回

function

fetch_array($result)

{

return

mysql_fetch_array($result);

}

//關(guān)閉鏈接

function

close()

{

return

mysql_close($this-dblink)

;

}

//輸出簡單的錯誤html提示信息并終止程序

function

halt($msg)

{

$message

=

"html\nhead\n"

;

$message

.=

"meta

content='text/html;charset=gb2312'\n"

;

$message

.=

"/head\n"

;

$message

.=

"body\n"

;

$message

.=

"數(shù)據(jù)庫出錯:".htmlspecialchars($msg)."\n"

;

$message

.=

"/body\n"

;

$message

.=

"/html"

;

echo

$message

;

exit

;

}

}

?

php訪問數(shù)據(jù)庫得到數(shù)據(jù)然后用json傳給javascript

首先你要理解JSON的格式啊,

如一個用戶對象的JSON格式:{"username":"zhangsna", "sex":"男"};

如果是數(shù)組的話,就需要用[{"username":"zhangsna", "sex":"男"},?{"username":"zhangsna2", "sex":"女"},...];

在了解了JSON的格式的時候,就可以來拼裝了:

如返回格式[userId, timePerMin, dateTime]格式就可以:

$arr[] =?$UserID;

$arr[] =?$timesPerMin;

$arr[] =?$dateTime;

echo?json_encode($arr);

如返回格式["userId":"", "timePerMin":"", "dateTime":""]格式就可以:

$arr["userId"] =?$UserID;

$arr["timePerMin"] =?$timesPerMin;

$arr["dateTime"] =?$dateTime;

echo?json_encode($arr);

本文名稱:php數(shù)據(jù)訪問對象 php獲取對象的屬性
分享網(wǎng)址:http://muchs.cn/article28/docoscp.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、網(wǎng)站維護App設計、企業(yè)建站、品牌網(wǎng)站設計、全網(wǎng)營銷推廣

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)