PHP 가 MySQL 데이터 베 이 스 를 연결 하 는 세 가지 방식 의 실례 분석[mysql,mysql,pdo]
5539 단어 PHPMySQL 데이터베이스 연결
PHP 와 MySQL 의 연결 은 세 가지 API 인터페이스 가 있 는데 그것 이 바로 PHP 의 MySQL 확장,PHP 의 mysql 확장,PHP 데이터 대상(PDO)이다.다음은 상기 세 가지 연결 방식 에 대해 정리 하고 서로 다른 장면 에서 가장 좋 은 방안 을 선택 할 수 있 도록 한다.
PHP 의 MySQL 확장 은 php 응용 과 MySQL 데이터베이스 의 상호작용 을 허용 하 는 디자인 개발 의 초기 확장 입 니 다.MySQL 확장 은 프로 세 스 를 위 한 인 터 페 이 스 를 제공 하고 MySQL 4.1.3 또는 더 빠 른 버 전 을 위 한 디자인 입 니 다.따라서 이 확장 자 는 MySQL 4.1.3 또는 업 데 이 트 된 데이터베이스 서버 와 상호작용 을 할 수 있 지만 후기 MySQL 서버 가 제공 하 는 일부 기능 은 지원 되 지 않 습 니 다.너무 오래 되 고 안전 하지 않 기 때문에 나중에 my sql 에 의 해 완전히 대체 되 었 습 니 다.
PHP 의 my sql 확장 은 MySQL 증강 확장 이 라 고도 부 릅 니 다.MySQL 4.1.3 또는 업데이트 버 전의 새로운 고급 기능 을 사용 할 수 있 습 니 다.대상 인터페이스,prepared 구문 지원,다 중 구문 실행 지원,트 랜 잭 션 지원,강 화 된 디 버 깅 능력,내장 형 서비스 지원,예비 처리 방식 으로 sql 주입 문 제 를 완전히 해결 한 것 이 특징 이다.하지만 mysql 데이터베이스 만 지원 하 는 단점 도 있다.만약 네가 다른 데이터 베 이 스 를 조작 하지 않 는 다 면,이것 은 의심 할 여지없이 가장 좋 은 선택 이다.
PDO 는 PHP Data Objects 의 줄 임 말로 PHP 응용 중의 데이터베이스 추상 층 규범 이다.PDO 는 통 일 된 API 인 터 페 이 스 를 제공 하여 PHP 응용 프로그램 이 구체 적 으로 연결 할 데이터베이스 서버 시스템 유형 에 관심 을 가지 지 않도록 할 수 있 습 니 다.즉,PDO 의 API 를 사용 하면 필요 할 때 틈 없 이 데이터베이스 서버 를 전환 할 수 있 습 니 다.예 를 들 어 Oracle 에서 MySQL 까지 아주 적은 PHP 코드 만 수정 해 야 합 니 다.그 기능 은 JDBC,ODBC,DBI 와 같은 인터페이스 와 유사 하 다.마찬가지 로 sql 주입 문 제 를 해결 하여 안전성 이 좋 습 니 다.그러나 그 에 게 도 단점 이 있다.어떤 다 문 구 는 조 회 를 수행 하 는 것 이 지원 되 지 않 는 다(그러나 이 상황 은 매우 적다).
관 문 은 세 사람 사이 에 도 리스트 적 인 비 교 를 했다.
PHP 의 my sql 확장
PDO
PHP 의 my sql 확장
도입 한 PHP 버 전
5.0
5.0
3.0 이전
PHP 5.x 포함 여부
예.
예.
예.
MySQL 개발 상태
활발 하 다.
PHP 5.3 에서 활약
유지 보수
MySQL 새 프로젝트 의 권장 사용 정도
제안.-첫 번 째.
건의 하 다.
건의 하지 않다
API 문자 집합 지원
예.
예.
아니.
서버 prepare 문장의 지원 상황
예.
예.
아니.
클 라 이언 트 prepare 문장의 지원 상황
아니.
예.
아니.
저장 프로시저 지원 현황
예.
예.
아니.
다 중 구문 실행 지원 현황
예.
대다수
아니.
모든 MySQL 4.1 이상 기능 지원 여부
예.
대다수
아니.
공식 적 으로 제 시 된 이 결 과 를 보면 msqli 를 우선 추천 하고 그 다음은 PDO 이다.한편,'민간'이 내 놓 은 결 과 는 대부분이 PDO 를 사용 하 는 경향 이 있다.라 이브 러 리 를 뛰 어 넘 는 장점 을 부담 하지 않 고 읽 기와 쓰기 속도 가 빠르다 는 특징 이 있 기 때문이다.
1.PHP 와 Mysql 확장(이 확장 자 는 PHP 5.5.0 부터 폐기 되 었 으 며 나중에 제거 될 것 입 니 다),PHP 원생 방식 으로 데이터 베 이 스 를 연결 하 는 것 은 프로 세 스 를 위 한 것 입 니 다.
<?php
$mysql_conf = array(
'host' => '127.0.0.1:3306',
'db' => 'test',
'db_user' => 'root',
'db_pwd' => 'root',
);
$mysql_conn = @mysql_connect($mysql_conf['host'], $mysql_conf['db_user'], $mysql_conf['db_pwd']);
if (!$mysql_conn) {
die("could not connect to the database:
" . mysql_error());//
}
mysql_query("set names 'utf8'");//
$select_db = mysql_select_db($mysql_conf['db']);
if (!$select_db) {
die("could not connect to the db:
" . mysql_error());
}
$sql = "select * from user;";
$res = mysql_query($sql);
if (!$res) {
die("could get the res:
" . mysql_error());
}
while ($row = mysql_fetch_assoc($res)) {
print_r($row);
}
mysql_close($mysql_conn);
?>
2.PHP 와 Mysqli 확장,프로 세 스,대상 지향
<?php
$mysql_conf = array(
'host' => '127.0.0.1:3306',
'db' => 'test',
'db_user' => 'root',
'db_pwd' => 'joshua317',
);
$mysqli = @new mysqli($mysql_conf['host'], $mysql_conf['db_user'], $mysql_conf['db_pwd']);
if ($mysqli->connect_errno) {
die("could not connect to the database:
" . $mysqli->connect_error);//
}
$mysqli->query("set names 'utf8';");//
$select_db = $mysqli->select_db($mysql_conf['db']);
if (!$select_db) {
die("could not connect to the db:
" . $mysqli->error);
}$sql = "select uid from user where name = 'joshua';";
$res = $mysqli->query($sql);
if (!$res) {
die("sql error:
" . $mysqli->error);
}
while ($row = $res->fetch_assoc()) {
var_dump($row);
}
$res->free();
$mysqli->close();
?>
3.PHP 와 PDO 확장,프로 세 스,대상 지향
<?php
$mysql_conf = array(
'host' => '127.0.0.1:3306',
'db' => 'test',
'db_user' => 'root',
'db_pwd' => 'joshua317',
);
$pdo = new PDO("mysql:host=" . $mysql_conf['host'] . ";dbname=" . $mysql_conf['db'], $mysql_conf['db_user'], $mysql_conf['db_pwd']);// pdo
$pdo->exec("set names 'utf8'");
$sql = "select * from user where name = ?";
$stmt = $pdo->prepare($sql);
$stmt->bindValue(1, 'joshua', PDO::PARAM_STR);
$rs = $stmt->execute();
if ($rs) {
// PDO::FETCH_ASSOC
// PDO::FETCH_NUM
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
var_dump($row);
}
}
$pdo = null;//
?>
더 많은 PHP 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있다.본 논문 에서 말 한 것 이 여러분 의 PHP 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
laravel에 yo에서 angularJs&coffeescript를 사용할 수 있도록 한다.먼저 yo 명령을 사용할 수 있어야하므로 아래에서 설치 global에 설치한 곳에서 laravel의 프로젝트 루트로 이동. 클라이언트 코드를 관리하는 디렉토리를 만들고 이동합니다. 클라이언트 환경 만들기 이것으로 히...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.