2011-06-17 13 views
19

Jaka jest różnica między mysqli_connect i mysql_connect?Jaka jest różnica między mysqli_connect i mysql_connect?

Zastanawiam się, kiedy powinienem użyć tego. Widzę, że oba są używane i wydaje się, że są wymienne.

Które połączenie jest lepsze i jak są one zasadniczo różne podczas łączenia?

+0

[Mysqli_connect Vs mysql_connect?] (Http: //answers.oreilly .com/topic/2557-mysqli-connect-vs-mysql-connect /) –

+0

Funkcje mysqli_ * są używane z zasobem mysqli_connect, a funkcje mysql_ * są używane z zasobem mysql_connect. mysqli ma więcej funkcji i jest bardziej aktualną wersją do użycia. możesz również zajrzeć do PDO, który jest sposobem OO łączenia się z bazami danych. – dqhendricks

+0

@dqhendricks: technicznie, że "zasób" mysqli jest obiektem, który sprawia, że ​​mysqli OO i style proceduralne są w pełni wymienne ... ale całkowicie niekompatybilne ze wszystkimi starymi funkcjami rozszerzenia mysql. –

Odpowiedz

10

Nie można ich stosować zamiennie. Istnieją różne rozszerzenia dostępu do baz danych MySQL.

Zobacz http://ca2.php.net/manual/en/book.mysqli.php i http://ca2.php.net/manual/en/book.mysql.php.

+0

Czy są więc zamienne z wersją v4.1.3 i nowszą? – locoboy

+0

@ cfarm54 - Oba mogą być używane. Nie są wymienne (jak w połączeniu z 'mysql_connect()', a następnie spróbuj użyć 'mysqli_query()'). Strona przeglądu MySQLi mówi: "Jeśli używasz MySQL w wersji 4.1.3 lub nowszej, zdecydowanie zaleca się używanie rozszerzenia mysqli." –

11

mysqli_*() to nowoczesny sposób dostępu do bazy danych MySQL za pośrednictwem PHP.

Są one nie wymienne.

8

sprawdzeniu dokumentacji: "Co to jest mysqli PHP Extension" http://ca3.php.net/manual/en/mysqli.overview.php

W sekcji

Rozszerzenie mysqli, lub jak to jest czasem wiadomo, MySQL poprawiła Rozszerzenie zostało opracowane w celu podjęcia korzystać z nowych funkcji znaleźć w MySQL systemów wersji 4.1.3 i nowszych . Rozszerzenie mysqli to dołączone później do wersji PHP 5 i .

Istnieje kilka ważnych różnic między tymi dwoma bibliotekami:

  • mysqli Statywy Statywy charsets, mysql nie
  • mysqli obsługuje przygotowanych sprawozdań, MySQL nie
  • MySQL nie obsługuje wielu instrukcji , mysqli ma
2

MySQL i MySQLi to dwa oddzielne rozszerzenia PHP, MySQLi jest nowszym jeden. Mimo że funkcje łączenia mogą być wymienialne, byłoby to dla mnie niekorzystne!

MySQLi zapewnia obiektowy sposób dostępu do baz danych MySQL.

w skrócie: jeśli używasz mysql_query(), powinieneś użyć mysql_connect(), aby połączyć się z serwerem.

Inne już łącza do postu do instrukcji PHP.

+1

Nic między rozszerzeniami mysql i mysqli nie jest wymienne. Stare funkcje mysql działają tylko na mysql _resources_. Funkcje i metody Mysql_i_ mogą działać tylko na mysqli _objects_. Mysql_i_ style proceduralne i OO są jednak w pełni zamienne. Zasadniczo, po uruchomieniu funkcji proceduralnej mysql_i_, wszystko co robisz to owijanie obiektu mysqli i wykonywanie jego wewnętrznej metody. –

1

Mysqli_connect to nowsza wersja biblioteki mysql.

Tutaj ja w mysqli oznacza ulepszone.

Kilka rzeczy zostało wprowadzonych z Mysqli.

Przetwory oświadczenia.

-Ustawienie zorientowane na obiekt.

-Wsparcie dla wielu instrukcji.

-Włączenie serwera wbudowanego.

Rozszerzenie mysqli posiada szereg zalet, klucz ulepszeń w stosunku do istoty rozszerzenia mysql:

-przedmiot zorientowany interfejs

-Wsparcie dla sporządzanych sprawozdań

-Wsparcie dla wielu instrukcji

-Wsparcie dla transakcji

- Udoskonalone możliwości debugowania

-Embedded obsługa serwera

Więc mysql_connect() w zasadzie jest złącze baza danych MySQL natomiast Mysqli_connect() jest złącze dla Mysqli databse

Powiązane problemy