php的mysqlmysqliPDO(一)mysql,mysqlipdo_PHP教程
Jul 12, 2016 am 08:56 AMphp的mysql\mysqli\PDO(一)mysql,mysqlipdo
原文鏈接:http://www.orlion.ga/1140/
工作中數(shù)據(jù)庫的操作都被封裝好了,這些怎么用的都快忘了干脆寫篇博客重新復(fù)習(xí)下,以后要是再忘記了可以看這篇文章。
?
????PHP 5.5.0 起已廢棄
????1、mysql_connect()
resource mysql_connect([ string $server [, string $username [, string $password [, bool$new_link [, int $client_flags ]]]]] )
$server:服務(wù)器地址可以包括端口號(hào),如果 PHP 指令 mysql.default_host 未定義(默認(rèn)情況),則默認(rèn)值是 'localhost:3306'。 在 SQL 安全模式 時(shí),參數(shù)被忽略,總是使用 'localhost:3306'。
$username:用戶名。默認(rèn)值由 mysql.default_user 定義。 在 SQL 安全模式 時(shí),參數(shù)被忽略,總是使用服務(wù)器進(jìn)程所有者的用戶名。
$password:密碼。默認(rèn)值由mysql.default_password定義。在 SQL 安全模式 時(shí),參數(shù)被忽略,總是使用空密碼。
$new_link:如果用同樣的參數(shù)第二次調(diào)用 mysql_connect(),將不會(huì)建立新連接,而將返回已經(jīng)打開的連接標(biāo)識(shí)。參數(shù)new_link
改變此行為并使 mysql_connect() 總是打開新的連接,甚至當(dāng) mysql_connect() 曾在前面被用同樣的參數(shù)調(diào)用過。
$client_flags:使用以下常量:
常量 | 說明 |
---|---|
MYSQL_CLIENT_COMPRESS |
使用壓縮的通訊協(xié)議 |
MYSQL_CLIENT_IGNORE_SPACE |
允許在函數(shù)名后留空格位 |
MYSQL_CLIENT_INTERACTIVE |
允許設(shè)置斷開連接之前所空閑等候的 interactive_timeout 時(shí)間(代替 wait_timeout)。 |
MYSQL_CLIENT_SSL |
使用 SSL 加密。本標(biāo)志僅在 MySQL 客戶端庫版本為 4.x 或更高版本時(shí)可用。在 PHP 4 和 Windows 版的 PHP 5 安裝包中綁定的都是 3.23.x。
|
2、mysql_close()
bool mysql_close ([ resource $link_identifier = NULL ] )
mysql_close() 關(guān)閉指定的連接標(biāo)識(shí)所關(guān)聯(lián)的到 MySQL 服務(wù)器的非持久連接。如果沒有指定 link_identifier
,則關(guān)閉上一個(gè)打開的連接.通常不需要使用 mysql_close(),因?yàn)橐汛蜷_的非持久連接會(huì)在腳本執(zhí)行完畢后自動(dòng)關(guān)閉。PHP 4 Zend 引擎引進(jìn)了引用計(jì)數(shù)系統(tǒng),可以自動(dòng)檢測(cè)到一個(gè)資源不再被引用了(和 Java 一樣)。這種情況下此資源使用的所有外部資源都會(huì)被垃圾回收系統(tǒng)釋放。因此,很少需要手工釋放內(nèi)存。
3、mysql_select_db()
bool mysql_select_db ( string $database_name [, resource $ link_identifier ] )
如果沒有指定$link_identifier則使用上一個(gè)打開的數(shù)據(jù)庫連接,如果沒有打開的連接則將無參數(shù)調(diào)用mysql_connet()取得一個(gè)連接并使用。如果沒有連接則E_WARNING錯(cuò)誤
4、mysql_query()
resource mysql_query ( string $query [, resource $link_identifier = NULL ] )
$query查詢字符串不應(yīng)該以分號(hào)結(jié)束
$link_identifier如果不指定處理方式與mysql_select_db()相同。
返回值:
mysql_query() 僅對(duì) SELECT,SHOW,DESCRIBE, EXPLAIN 和其他語句 語句返回一個(gè) resource,如果查詢出現(xiàn)錯(cuò)誤則返回 FALSE
。對(duì)于其它類型的 SQL 語句,比如INSERT, UPDATE, DELETE, DROP 之類, mysql_query() 在執(zhí)行成功時(shí)返回 TRUE
,出錯(cuò)時(shí)返回 FALSE
。返回的結(jié)果資源應(yīng)該傳遞給 mysql_fetch_array() 和其他函數(shù)來處理結(jié)果表,取出返回的數(shù)據(jù)。假定查詢成功,可以調(diào)用 mysql_num_rows() 來查看對(duì)應(yīng)于 SELECT 語句返回了多少行,或者調(diào)用mysql_affected_rows() 來查看對(duì)應(yīng)于 DELETE,INSERT,REPLACE 或 UPDATE 語句影響到了多少行。如果沒有權(quán)限訪問查詢語句中引用的表時(shí),mysql_query() 也會(huì)返回 FALSE
。
對(duì)于包含二進(jìn)制數(shù)據(jù)的查詢,你必須使用mysql_real_query()而不是mysql_query(),因?yàn)槎M(jìn)制代碼數(shù)據(jù)可能包含“\0”字符,而且,mysql_real_query()比mysql_query()更快,因?yàn)樗粫?huì)在查詢字符串上調(diào)用strlen()。如果查詢成功,函數(shù)返回零。如果發(fā)生一個(gè)錯(cuò)誤,函數(shù)返回非零
5、mysql_affected_rows()
int mysql_affected_rows ([ resource $link_identifier = NULL ] )
取得最近一次與 link_identifier
關(guān)聯(lián)的 INSERT,UPDATE 或 DELETE 查詢所影響的記錄行數(shù)。
6、mysql_fetch_array()
array mysql_fetch_array ( resource $result [, int $ result_type ] )
將結(jié)果以數(shù)組方式返回,一次只返回一行,然后指向下一行(用while循環(huán)取出)如果沒有更多結(jié)果返回false。如果結(jié)果中有兩個(gè)或兩個(gè)以上的列有相同的字段名,最后一列將優(yōu)先。如果sql中指定了別名則使用別名。PHP手冊(cè)中指出mysql_fetch_array并不明顯比mysql_fetch_row慢。
$result_type:可選:MYSQL_ASSOC(關(guān)聯(lián)數(shù)組),MYSQL_NUM(枚舉數(shù)組) 和 MYSQL_BOTH,默認(rèn)值MYSQL_BOTH。
// MYSQL_NUM $result = mysql_query("SELECT id, name FROM mytable"); while ($row = mysql_fetch_array($result, MYSQL_NUM)) { printf ("ID: %s Name: %s", $row[0], $row[1]); } // MYSQL_ASSOC $result = mysql_query("SELECT id, name FROM mytable"); while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { printf ("ID: %s Name: %s", $row["id"], $row["name"]); } // MYSQL_BOTH $result = mysql_query("SELECT id, name FROM mytable"); while ($row = mysql_fetch_array($result, MYSQL_BOTH)) { printf ("ID: %s Name: %s", $row[0], $row["name"]); }
7、其他函數(shù):
string mysql_error ([ resource $link_identifier ] )
如果沒有指定數(shù)據(jù)庫連接則使用上一個(gè)連接,只返回最近一次mysql函數(shù)的錯(cuò)誤文本。
bool mysql_set_charset ( string $charset [, resource $link_identifier = NULL ] )
設(shè)置字符集,數(shù)據(jù)庫連接的選擇與mysql_select_db()一樣。
string mysql_real_escape_string ( string $unescaped_string [, resource $link_identifier ] )
????轉(zhuǎn)義 SQL 語句中使用的字符串中的特殊字符,并考慮到連接的當(dāng)前字符集(這是與mysql_escape_string()的不同)

? AI ??

Undress AI Tool
??? ???? ??

Undresser.AI Undress
???? ?? ??? ??? ?? AI ?? ?

AI Clothes Remover
???? ?? ???? ??? AI ?????.

Clothoff.io
AI ? ???

Video Face Swap
??? ??? AI ?? ?? ??? ???? ?? ???? ??? ?? ????!

?? ??

??? ??

???++7.3.1
???? ?? ?? ?? ???

SublimeText3 ??? ??
??? ??, ???? ?? ????.

???? 13.0.1 ???
??? PHP ?? ?? ??

???? CS6
??? ? ?? ??

SublimeText3 Mac ??
? ??? ?? ?? ?????(SublimeText3)

PHP? ???? ? ??????? ??? ? MySQL ??????? ???? ???? ???? ??? ????. PHP? MySQLi?? MySQL ??????? ?? ???? ??? ?????. ??? ??? MySQLi? ??? ? ??? ?? ?? ???? ??? ? ????. PHPFatalerror:Calltoundefoundfunctionmysqli_connect() ? ?? ???? PHP? ? ??? ?? ? ??? ?????.

PDOPDO? PHP? ?? ?????? ???? ?? ?? ?????? ??? ??? ????, ??? ??? ???? ??? ??????(?: Mysql, postgresql, oracle)? ?? ??? ? ????. PDO? ?? ?????? ??? ???? ??? ?????? ??? ??????. ??? ?? ??: ?? ?????, ?? ?????? ??, ?????? ?? ???, ?? ??? ??, ??? ??? ??, ?? ??, ???? ?? ?? ??: ??? ?? ???? ?? ?? ? ??, ?? ?????? ????, ????? ??? ? ????. ?? ??? PDO? ???? mysql ??????? ?????: $db=newPDO("mysql:host=localhost;dbnam

PHP? ???? MySQL ??????? ??? ? PHPWarning:mysqli_connect():(HY000/2002):Connectionrefused ?? ???? ???? ?? ?? ??? ?? ? ??? ??? ? ????. MySQL ???? ????? ???? ??? ????? ?? MySQL ???? ????? ???? ??? ???? ???. ???? ???? ??? ???? ?? ?? ?? ?? ??? ??? ? ????. ??? ? ?

PHP? mysqli? ??? ? ?? ?? ?? ??: 1. "php.ini" ??? ???. 2. "mysqli.reconnect"? ????. 3. "mysqli.reconnect = OFF"? "mysqli.reconnect = on"?? ?????.

MySQLi? ???? PHP?? ?????? ??? ???? ??: MySQLi ?? ??(require_once) ?? ?? ??(functionconnect_to_db) ?? ?? ??($conn=connect_to_db()) ?? ??($result=$conn->query()) ?? ??( $conn->close())

mysql? ?? ??? mysqld??, mysqld? Mysql ?? ????? ???? ?? ????, mysqld_safe? ????? mysqld? ???? ??? ????? ???? ?? ??????. .

mysqli ??? ???? MySQL ??????? ???? ??? ? PHPFatalerror:Calltoundefinemethodmysqli::prepare() ??? ???? ??? ????. ? ??? ????? ??? ?? ??? ?????. PHP? mysqli ??? ?? ??? ???? ????. mysqli ??? ???? ????? ???? ?????. MySQL ??? ???? ???? ???? ?? ????.

PHP? ???? ????? ??? ? ?????? ??? ?? ??????. MySQLi? MySQL ??????? ???? ?? PHP?? ????? ???? ?? ????, ??? ??? ?? ?? ?????, ??? ?????? ???? ??? ???? ??? ?????. ??? ??? mysqli? ??? ???? ??? ? ??? ?? ??? ?????: PHPFatalerror:Calltoun Definedfunctionmysqli_stmt_bin
