2009-12-29 3 views
5

Jakie są różnice/zalety każdego? Niedogodności?MySQL vs MySQLi w PHP

Nie szukam preferencji kodowania ani subiektywnych odpowiedzi.

Co to są różne różnice między ? (Przechowywanie, implementacja, jak wygląda kod, wymagania dotyczące środowiska ...)

+0

Również * [MySQL vs MySQLi przy użyciu PHP] (http://stackoverflow.com/questions/548986/mysql-vs-mysqli-when-using-php) * –

Odpowiedz

11

Możesz użyć prepared statements z mysqli.
I jest też function to store large (blob) data, którego "stare" rozszerzenie mysql nie ma.

// php-mysql: no oo-interface 
$mysqli = new mysqli('localhost', 'localonly', 'localonly'); 
if ($mysqli->connect_error) { 
    die($mysqli->connect_error); 
} 

// php-mysql: no prepared statements 
$stmt = $mysqli->prepare("INSERT INTO foo (mydata) VALUES (?)"); 
$stmt->bind_param("b", $null); 

// php-mysql: no function to send data in chunks 
$fp = fopen("php://input", "r"); 
while (!feof($fp)) { 
    $chunk = fread($fp, 4096); 
    $stmt->send_long_data(0, $chunk); 
} 
$stmt->execute(); 
+0

+1, pytanie dodatkowe - jak skonfigurować MySQLi, jeśli mam zainstalowany MySQL? Czy można używać funkcji MySQLi do wywoływania baz danych MySQL? – Moshe

+0

Możesz użyć obu modułów, aby połączyć się z serwerem MySQL. mysqli jest "tylko" modułem php, który możesz albo skompilować do rdzenia PHP, albo załadować jako moduł. na przykład * Dystrybucje nix często mają pakiety php-modulename, które możesz zainstalować za pomocą menedżera pakietów ditribution. – VolkerK

9

Przeczytaj overview na podręczniku PHP, odpowiada na większość pytań i ma tabelę porównawczą.

+0

Od tego przeglądu: „Jeżeli was używają MySQL w wersjach 4.1.3 lub późniejszych, zdecydowanie zaleca się używanie zamiast tego rozszerzenia mysqli. " – Oscar

3

Przygotowane wyciągi są dostępne w mysqli na jeden. Możesz także użyć interfejsu OO, więc zamiast mysql_foo_bar() masz $con->foo_bar().