2009-12-29 3 views
5

각각의 차이점은 무엇입니까? 단점?MySQL과 PHP의 MySQLi

코딩 기본 설정이나 주관적 대답을 찾고 있지 않습니다.

무엇이 다른 이유는 무엇입니까? (저장소, 구현, 코드 모양, 환경 요구 사항 ...)

+0

또한 * MySQLi 대 MySQL을 할 때 사용하는 PHP] (http://stackoverflow.com/questions/548986/mysql-vs-mysqli-when-using-php) * 그 개요에서 –

답변

11

prepared statements을 mysqli와 함께 사용할 수 있습니다.
"이전"mysql 확장에없는 function to store large (blob) data도 있습니다.

// 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, 보너스 질문 - MySQL을 설치 한 경우 어떻게 MySQLi를 설정합니까? MySQLi 함수를 사용하여 MySQL 데이터베이스를 호출 할 수 있습니까? – Moshe

+0

두 모듈을 모두 사용하여 MySQL 서버에 연결할 수 있습니다. mysqli는 PHP 코어에 컴파일하거나 모듈로로드 할 수있는 "유일한"PHP 모듈입니다. 예 : * nix 배포판에는 종종 배포 패키지 관리자를 통해 설치할 수있는 PHP 모듈 이름 패키지가 있습니다. – VolkerK

9

PHP 설명서의 overview을 읽으면 대부분의 질문에 답하고 비교 차트가 있습니다.

+0

: "당신이 만약 MySQL 버전 4.1.3 이상을 사용하고 있다면 mysqli 확장을 대신 사용하는 것이 좋습니다. " – Oscar

3

미리 준비된 문은 mysqli에서 사용할 수 있습니다. OO 인터페이스를 사용하여 mysql_foo_bar() 대신 $con->foo_bar()을 사용할 수도 있습니다.