php的mysql\mysqli\PDO(一)mysql,mysqlipdo
原文連結:http://www.orlion.ga/1140/
工作中資料庫的操作都被封裝好了,這些怎麼用的都快忘了乾脆寫篇部落格重新複習下,以後要是再忘記了可以看這篇文章。
PHP 5.5.0 起已廢棄
1、mysql_connect()
resource mysql_connect([ string $server [, string $username [, string $password [, bool$new_link [, int $client_flags ]]]]] )
$server:伺服器位址可以包括連接埠號碼,如果 PHP 指令 mysql.default_host 未定義(預設情況),則預設值是 'localhost:3306'。 在 SQL 安全模式 時,參數被忽略,總是使用 'localhost:3306'。
$username:使用者名稱。預設值由 mysql.default_user 定義。 在 SQL 安全模式 時,參數被忽略,總是使用伺服器處理序所有者的使用者名稱。
$password:密碼。預設值由mysql.default_password定義。在 SQL 安全模式 時,參數被忽略,總是使用空密碼。
$new_link:如果用同樣的參數第二次調用 mysql_connect(),將不會建立新串連,而將返回已經開啟的串連標識。參數new_link 改變此行為並使 mysql_connect() 總是開啟新的串連,甚至當 mysql_connect() 曾在前面被用同樣的參數調用過。
$client_flags:使用以下常量:
MySQL 用戶端常量
| 常量 |
說明 |
MYSQL_CLIENT_COMPRESS |
使用壓縮的通訊協議 |
MYSQL_CLIENT_IGNORE_SPACE |
允許在函數名後留空格位 |
MYSQL_CLIENT_INTERACTIVE |
允許設定中斷連線之前所空閑等候的 interactive_timeout 時間(代替 wait_timeout)。 |
MYSQL_CLIENT_SSL |
使用 SSL 加密。本標誌僅在 MySQL 用戶端庫版本為 4.x 或更高版本時可用。在 PHP 4 和 Windows 版的 PHP 5 安裝包中綁定的都是 3.23.x。 |
2、mysql_close()
bool mysql_close ([ resource $link_identifier = NULL ] )
mysql_close() 關閉指定的串連標識所關聯的到 MySQL 伺服器的非持久串連。如果沒有指定 link_identifier,則關閉上一個開啟的串連.通常不需要使用 mysql_close(),因為已開啟的非持久串連會在指令碼執行完畢後自動關閉。PHP 4 Zend 引擎引進了引用計數系統,可以自動檢測到一個資源不再被引用了(和 Java 一樣)。這種情況下此資源使用的所有外部資源都會被記憶體回收系統釋放。因此,很少需要手工釋放記憶體。
3、mysql_select_db()
bool mysql_select_db ( string $database_name [, resource $ link_identifier ] )
如果沒有指定$link_identifier則使用上一個開啟的資料庫連接,如果沒有開啟的串連則將無參數調用mysql_connet()取得一個串連並使用。如果沒有串連則E_WARNING錯誤
4、mysql_query()
resource mysql_query ( string $query [, resource $link_identifier = NULL ] )
$query查詢字串不應該以分號結束
$link_identifier如果不指定處理方式與mysql_select_db()相同。
傳回值:
mysql_query() 僅對 SELECT,SHOW,DESCRIBE, EXPLAIN 和其他語句 語句返回一個 resource,如果查詢出現錯誤則返回 FALSE。對於其它類型的 SQL 陳述式,比如INSERT, UPDATE, DELETE, DROP 之類, mysql_query() 在執行成功時返回 TRUE,出錯時返回 FALSE。返回的結果資源應該傳遞給 mysql_fetch_array() 和其他函數來處理結果表,取出返回的資料。假定查詢成功,可以調用 mysql_num_rows() 來查看對應於 SELECT 語句返回了多少行,或者調用mysql_affected_rows() 來查看對應於 DELETE,INSERT,REPLACE 或 UPDATE 語句影響到了多少行。如果沒有許可權訪問查詢語句中引用的表時,mysql_query() 也會返回 FALSE。
對於包含位元據的查詢,你必須使用mysql_real_query()而不是mysql_query(),因為二進位代碼資料可能包含“\0”字元,而且,mysql_real_query()比mysql_query()更快,因為它不會在查詢字串上調用strlen()。如果查詢成功,函數返回零。如果發生一個錯誤,函數返回非零
5、mysql_affected_rows()
int mysql_affected_rows ([ resource $link_identifier = NULL ] )
取得最近一次與 link_identifier 關聯的 INSERT,UPDATE 或 DELETE 查詢所影響的記錄行數。
6、mysql_fetch_array()
array mysql_fetch_array ( resource $result [, int $ result_type ] )
將結果以數組方式返回,一次只返回一行,然後指向下一行(用while迴圈取出)如果沒有更多結果返回false。如果結果中有兩個或兩個以上的列有相同的欄位名,最後一列將優先。如果sql中指定了別名則使用別名。PHP手冊中指出mysql_fetch_array並不明顯比mysql_fetch_row慢。
$result_type:可選:MYSQL_ASSOC(關聯陣列),MYSQL_NUM(枚舉數組) 和 MYSQL_BOTH,預設值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、其他函數:
string mysql_error ([ resource $link_identifier ] )
如果沒有指定資料庫連接則使用上一個串連,只返回最近一次mysql函數的錯誤文本。
bool mysql_set_charset ( string $charset [, resource $link_identifier = NULL ] )
設定字元集,資料庫連接的選擇與mysql_select_db()一樣。
string mysql_real_escape_string ( string $unescaped_string [, resource $link_identifier ] )
轉義 SQL 陳述式中使用的字串中的特殊字元,並考慮到串連的當前字元集(這是與mysql_escape_string()的不同)
http://www.bkjia.com/PHPjc/1112810.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/1112810.htmlTechArticlephp的mysql\mysqli\PDO(一)mysql,mysqlipdo 原文連結:http://www.orlion.ga/1140/ 工作中資料庫的操作都被封裝好了,這些怎麼用的都快忘了乾脆寫篇部落格重...