2011-06-17 77 views
19

mysqli_connect和mysql_connect有什麼區別?mysqli_connect和mysql_connect有什麼區別?

我只是想知道什麼時候該用哪一個。我看到兩者都在使用,看起來它們可以互換。

哪個連接更好,連接時它們有什麼根本不同?

+0

[Mysqli_connect Vs的的mysql_connect?](HTTP連接器://answers.oreilly .com/topic/2557-mysqli-connect-vs-mysql-connect /) –

+0

mysqli_ *函數與mysqli_connect資源一起使用,並且mysql_ *函數與mysql_connect資源一起使用。 mysqli有更多的功能,並且是最新的版本。您可能還想研究PDO,這是一種連接到數據庫的OO方式。 – dqhendricks

+0

@dqhendricks:從技術上講,mysqli「resource」是一個對象,它使得mysqli OO和過程風格完全可以互換......但完全不兼容所有舊的mysql擴展函數。 –

回答

10

它們不可互換。有不同的擴展來訪問MySQL數據庫。

請參閱http://ca2.php.net/manual/en/book.mysqli.phphttp://ca2.php.net/manual/en/book.mysql.php

+0

那麼它們是否可以與v4.1.3和更新版本互換? – locoboy

+0

@ cfarm54 - 兩者都可以使用。它們是不可互換的(正如你用'mysql_connect()'連接,然後嘗試使用'mysqli_query()')。 MySQLi概述頁面說:「如果您使用的是MySQL 4.1.3或更高版本,強烈建議您改用mysqli擴展名。」 –

11

mysqli_*()是通過PHP訪問MySQL數據庫的現代方式。

它們是不是可互換。

8

退房的文件:「什麼是PHP的MySQLi擴展」 http://ca3.php.net/manual/en/mysqli.overview.php

從部分

mysqli擴展,或因爲它是 有時也被稱爲,MySQL的改善 擴展,後來發展到採取 優勢的新功能 MySQL的系統版本4.1.3和更新 發現。隨後的PHP版本5和 中包含的mysqli擴展名爲 。

有兩個庫之間的一些重要區別:

  • mysqli的支持支持字符集,MySQL不
  • mysqli的支持預處理語句,MySQL不
  • MySQL不支持多條語句,mysqli確實
2

MySQL和MySQLi是兩個獨立的PHP擴展,MySQLi是最新的一。 雖然連接功能可能是可以互換的,但我會因此而不利!

MySQLi爲訪問MySQL數據庫提供了一種面向對象的方式。

簡而言之: 如果您使用mysql_query(),則應該使用mysql_connect()連接到您的服務器。

其他已經鏈接到PHP手冊。

+1

mysql和mysqli擴展之間沒有什麼可以互換的。舊的mysql函數只能在mysql _resources_上運行。 Mysql_i_函數和方法只能在mysqli _objects_上工作。然而Mysql_i_程序和OO樣式完全可以互換。基本上,當你執行一個mysql_i_過程函數時,你所做的只是包裝mysqli對象並執行其內部方法。 –

1

Mysqli_connect是mysql庫的較新版本。

這裏我在mysqli代表改進。

Mysqli引入了一些東西。

它們是,

-準備好的陳述。

- 面向對象的接口。

- 支持多種語句。

- 嵌入式服務器支持。

mysqli擴展具有許多優點,在MySQL擴展是關鍵的增強功能:

面向-object接口

- 支持預處理語句

- 支持多個語句

- 支持交易

- 增強的調試功能

- 嵌入式服務器支持

所以mysql_connect()函數基本上是數據庫連接器到MySQL而Mysqli_connect()是用於mysqli的DATABSE