php 에서 데이터베이스 연결 방식 pdo 와 mysql 비교 분석
4217 단어 php데이터베이스 연결 방식pdomysqli
PDO
MySQLi
데이터베이스 지원
12 가지 서로 다른 데이터베이스 지원
MySQL 지원
API
OOP
OOP + 프로 세 스
Connection
Easy
Easy
명명 매개 변수
지지 하 다.
지지 하지 않 음
대상 맵 지원
지지 하 다.
지지 하 다.
전처리 문
(클 라 이언 트)
지지 하 다.
지지 하지 않 음
성능
빠르다.
빠르다.
저장 프로시저 지원
지지 하 다.
지지 하 다.
2 연결 방식
먼저 두 가지 데이터 베 이 스 를 연결 하 는 방식 을 살 펴 보 겠 습 니 다.
// PDO
$pdo = new PDO("mysql:host=localhost;dbname=database", 'username', 'password');
// mysqli,
$mysqli = mysqli_connect('localhost','username','password','database');
// mysqli,
$mysqli = new mysqli('localhost','username','password','database');
3 데이터베이스 지원PDO 는 다양한 데이터 베 이 스 를 지원 하지만 MYSQLI 는 MYSQL 만 지원 합 니 다.
4 이름 매개 변수 name parameter
PDO 방식:
$params = array(':username' => 'test', ':email' => $mail, ':last_login' => time() - 3600);
$pdo->prepare('
SELECT * FROM users
WHERE username = :username
AND email = :email
AND last_login > :last_login');
MYSQLI 는 귀 찮 습 니 다.지원 하지 않 습 니 다.다음 과 같 을 수 밖 에 없습니다.
$query = $mysqli->prepare('
SELECT * FROM users
WHERE username = ?
AND email = ?
AND last_login > ?');
$query->bind_param('sss', 'test', $mail, time() - 3600);
$query->execute();
이렇게 되면 물음표 에 대한 순서 도 번 거 롭 고 불편 하 다.5 ORM 맵 지원
예 를 들 어 하나의 user 가 있 는데 다음 과 같다.
class User
{
public $id;
public $first_name;
public $last_name;
public function info()
{
return '#' . $this->id . ': ' . $this->first_name . ' ' . $this->last_name;
}
}
$query = "SELECT id, first_name, last_name FROM users";
// PDO
$result = $pdo->query($query);
$result->setFetchMode(PDO::FETCH_CLASS, 'User');
while ($user = $result->fetch())
{
echo $user->info() . "
";
}
MYSQLI 는 프로 세 스 를 위 한 방식 으로:
if ($result = mysqli_query($mysqli, $query)) {
while ($user = mysqli_fetch_object($result, 'User')) {
echo $user->info()."
";
}
}
MYSQLI 는 프로 세 스 를 위 한 방식 을 사용 합 니 다.
// MySQLi, object oriented way
if ($result = $mysqli->query($query)) {
while ($user = $result->fetch_object('User')) {
echo $user->info()."
";
}
}
6 SQL 주입 방지:PDO 수 동 설정
$username = PDO::quote($_GET['username']);
$pdo->query("SELECT * FROM users WHERE username = $username");
mysql 사용 하기
$username = mysqli_real_escape_string($_GET['username']);
$mysqli->query("SELECT * FROM users WHERE username = '$username'");
7 preparestamentPDO 방식:
$pdo->prepare('SELECT * FROM users WHERE username = :username');
$pdo->execute(array(':username' => $_GET['username']));
MYSQLI:
$query = $mysqli->prepare('SELECT * FROM users WHERE username = ?');
$query->bind_param('s', $_GET['username']);
$query->execute();
젊은이 들 은 본 고 를 통 해 PHP 의 2 가지 링크 방식 인 PDO 와 my sql 에 대해 새로운 인식 을 가지 게 되 었 습 니까?본 고 는 여러분 에 게 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Laravel - 변환된 유효성 검사 규칙으로 API 요청 제공동적 콘텐츠를 위해 API를 통해 Laravel CMS에 연결하는 모바일 앱(또는 웹사이트) 구축을 고려하십시오. 이제 앱은 CMS에서 번역된 콘텐츠를 받을 것으로 예상되는 다국어 앱이 될 수 있습니다. 일반적으로 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.