//먼저 mysql 데이터베이스에 연결합니다.
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
//mssql에 연결하려는 경우:
//mssql:호스트=localhost;dbname=testdb
//pgsql에 연결:
//pgsql:host=localhost 포트=5432 dbname=testdb 사용자=bruce 비밀번호=mypass
//odbc(DSN)에 연결
//odbc:테스트db
//심지어 액세스:
//odbc:Driver={Microsoft Access Driver(*.mdb)};Dbq=C:\db.mdb;Uid=Admin
//oracle, sqlite, db2도 있습니다....
//쿼리 실행
foreach ($dbh->query('SELECT * from FOO') as $row) {
print_r($row); //이 결과는 mysql_fetch_array와 유사합니다. PDOStatement::setFetchMode를 조정할 수 있습니다.
}
//또한:
$sth = $dbh->prepare("이름, 과일의 색상 선택");
$sth->execute();
//배열에 설정된 전체 레코드를 읽습니다.
$result = $sth->fetchAll();
print_r($결과);
//산출:
정렬
(
[0] => 배열
(
[이름] => 배
[0] => 배
[색상] => 녹색
[1] => 녹색
)
[1] => 배열
(
[이름] => 수박
[0] => 수박
[색상] => 핑크
[1] => 분홍색
)
)
//데이터 삽입/삭제/업데이트:
$count = $dbh->exec("색상 = '빨간색'인 과일에서 삭제하세요.");
//$count는 삭제된 항목의 개수입니다. mysql_affected_rows와 동일
//PDOStatement::rowCount를 사용할 수도 있습니다.
//사용한 데이터베이스를 잊어버렸습니다. . . .
if ($db->getAttribute(PDO::ATTR_DRIVER_NAME) == 'mysql') {
echo "mysql에서 실행 중입니다. 여기에서 mysql과 관련된 작업을 수행하고 있습니다.n";
}
//Mysql_escape_string은 데이터를 삽입할 때 사용되던가요?
"따옴표 없는 문자열: $stringn"을 인쇄합니다.
"인용된 문자열: " . $conn->quote($string) "n";
//얻다:
인용되지 않은 문자열: 좋음
따옴표 붙은 문자열: 'Nice'
// 이제 따옴표도 자동으로 추가됩니다. . . .
//일부 ' => '', 일부 ' => ', => \와 같이 데이터베이스마다 결과가 다르다는 점에 유의하세요.
//이제 걱정하지 마세요. 완전 자동입니다.
//마지막으로 닫아야지
$콘 = 널;
//하지만! 다음을 통해 연결 상태를 유지할 수 있습니다.
$dbh = 새 PDO('odbc:SAMPLE', 'db2inst1', 'ibmdb2',
array(PDO_ATTR_PERSISTENT => true));
//아주 간단하죠?
첨부: 매우 간단한 특수 호출 방법:
$stmt = $dbh->prepare("SELECT * FROM REGISTRY where name = ?");
if ($stmt->execute(array($_GET['name']))) { //무엇이 두려운가요? 자동 견적!
while ($row = $stmt->fetch()) {
print_r($행);
}
}
또한:
$stmt->bindParam(1, $id);
$stmt->bindParam(2, $_FILES['파일']['유형']);
$stmt->bindParam(3, $fp, PDO::PARAM_LOB);
이런 좋은 함수는 어디서 찾을 수 있나요? php5.1 이상은 확장에 있고, php5는 pecl에 있고, php4에는 생각하지 마세요.