반응형
pdo 확장은 php에 다양한 데이터베이스를 지원할 수 있는 경량 일관된 인터페이스를 제공하며, 다음은 pdo 확장을 사용하여 mysql을 조작하여 데이터의 첨삭 및 수정을 실현합니다
<?php
$dsn = 'mysql:dbname=test;host=127.0.0.1';
$user = 'root';
$password = '123456';
//링크 데이터베이스
try {
$params = [
PDO::MYSQL_ATTR_INIT_COMMAND => "set names utf8", //인코딩 설정
PDO::ATTR_EMULATE_PREPARES => false, //전처리 사용
];
$db = new PDO($dsn, $user, $password, $params);
} catch (PDOException $e) {
echo $e->getMessage();
exit;
}
//여러 개의 데이터를 조회하다
$sth = $db->prepare('SELECT id, title FROM article WHERE id =?');
$sth->execute([1]);
$res1 = $sth->fetchAll(PDO::FETCH_ASSOC); //반환되는 값을 설정할 수 있는 여러 가지 방법이 있습니다
print_r($res1);
//한 줄의 데이터를 조회하다
$sth = $db->prepare('SELECT id, title FROM article WHERE id =?');
$sth->execute([1]);
$res2 = $sth->fetch(PDO::FETCH_ASSOC);
print_r($res2);
$sth = null; //결과 집합 풀기
//일렬을 취하다
$sth = $db->prepare('SELECT title FROM article WHERE 1');
$sth->execute();
$res3 = $sth->fetchAll(PDO::FETCH_COLUMN);
print_r($res3);
$sth = null; //결과 집합 풀기
//추가
$sth = $db->prepare("INSERT INTO `article`(`title`,`content`,`created_at`)VALUES(?,?,?)");
$sth->execute(['제목', '내용', time()]);
echo "영향을 받는 행 수:", $sth->rowCount(), "<br/>";
echo "자동증가ID:", $db->lastInsertId(), "<br/>";
//고치다
$sth = $db->prepare("UPDATE `article` SET `title`=? WHERE `id`=?");
$sth->execute(['제목 12', 2]);
echo "영향을 받는 행 수:", $sth->rowCount(), "<br/>";
//삭제하다
$sth = $db->prepare("DELETE FROM `article` WHERE `id`=?");
$sth->execute([3]);
echo "영향을 받는 행 수:", $sth->rowCount(), "<br/>";
//사무
try {
$db->beginTransaction();
$sth = $db->prepare("UPDATE `article` SET `title`=? WHERE `id`=?");
$sth->execute(['사무1', 1]);
echo "영향을 받는 행 수:", $sth->rowCount(), "<br/>";
$sth = $db->prepare("UPDATE `article` SET `title`=? WHERE `id`=?");
$sth->execute(['사무1', 2]);
echo "영향을 받는 행 수:", $sth->rowCount(), "<br/>";
//때때로, 당신은 수동으로 이상을 던져 롤백 작업을 해야 할 수도 있습니다
// throw new Exception("오류 메시지", 1);
$db->commit();
echo "성공하다";
} catch (Exception $e) {
$db->rollBack();
echo $e->getMessage();
}
$db = null; //데이터베이스 연결 닫기
표 작성 문구:
CREATE TABLE `article` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`title` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`content` text COLLATE utf8mb4_unicode_ci,
`created_at` int(11) unsigned DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='문장표';
INSERT INTO `test`.`article` (`id`, `title`, `content`, `created_at`) VALUES ('1', '제목 12', '테스트 내용', '234');
INSERT INTO `test`.`article` (`id`, `title`, `content`, `created_at`) VALUES ('2', '제목 12', '테스트 내용2', '2323');
반응형
'개발 꿀팁 > PHP' 카테고리의 다른 글
PHP에서 웹 페이지 건너뛰기 방법 (0) | 2022.09.23 |
---|---|
php 비교 부동 소수점 수 (0) | 2022.09.22 |
PHP는 두 개의 타임스탬프가 같은 주에 있는지 어떻게 판단합니까? (0) | 2022.09.22 |
php 타이머 phptimer (0) | 2022.09.22 |
청구 사례다. PHPcurl (1) | 2022.09.21 |