티스토리 뷰
`$stmh = $pdo->prepare($sql);`와 `$stmh = $pdo->query($sql);` 차이점 비교
Coding Life 2024. 3. 19. 18:44`$stmh = $pdo->prepare($sql);`와 `$stmh = $pdo->query($sql);` 사이에는 중요한 차이점이 있습니다. 이들은 PHP의 PDO (PHP Data Objects) 확장에서 제공하는 두 가지 다른 방법으로, 데이터베이스와의 상호작용을 처리합니다.
1. **`$pdo->prepare($sql);` 사용:**
- `prepare()` 메서드는 SQL 문을 준비하고 PDOStatement 객체를 반환합니다. 이 메서드는 SQL 문에서 변수를 바인딩하기 위해 사용됩니다.
- `prepare()`는 주로 변수가 포함된 SQL 문에서 사용됩니다. 예를 들어, 사용자 입력을 포함하는 경우 이 방법을 사용하여 SQL 인젝션과 같은 보안 취약점을 방지할 수 있습니다.
- `prepare()` 후에는 `bindParam()` 또는 `bindValue()` 메서드를 사용하여 변수를 SQL 문에 바인딩한 다음 `execute()` 메서드를 호출하여 쿼리를 실행합니다.
- 이 방법은 특히 같은 쿼리를 여러 번 실행해야 할 때 효율적입니다.
2. **`$pdo->query($sql);` 사용:**
- `query()` 메서드는 SQL 문을 바로 실행하고 결과로 PDOStatement 객체를 반환합니다.
- 이 메서드는 변수 바인딩이 필요 없는 간단한 쿼리에 적합합니다. 예를 들어, 정적인 `SELECT` 쿼리나 `UPDATE`, `INSERT`, `DELETE` 쿼리에서 사용할 수 있습니다.
- `query()`는 SQL 인젝션 보호 기능을 제공하지 않으므로 사용자 입력을 포함하는 쿼리에는 적합하지 않습니다.
- `query()`는 쿼리를 한 번만 실행할 때 일반적으로 사용됩니다.
간단히 말해서, `prepare()`와 `execute()`의 조합은 보안과 재사용성 측면에서 우수하지만, `query()`는 간단하고 정적인 쿼리를 빠르게 실행하는 데 유용합니다. 사용자 입력을 포함하는 경우나 복잡한 동적 쿼리를 실행할 때는 `prepare()` 메서드를 사용하는 것이 좋습니다.
'IT tech Coding > php' 카테고리의 다른 글
[php 오류] 오류: SQLSTATE[HY000]: General error: 1525 Incorrect DATE value: '' (0) | 2024.05.05 |
---|---|
php 3항 연산자 실제 사용사례 보기 (0) | 2024.05.02 |
오류: SQLSTATE[HY000]: General error: 2031 php 오류코드는 무엇인가? (0) | 2024.03.19 |
좌충우돌 코딩, 재고 자주 불러오는 부분 간소화 하기 (0) | 2024.02.21 |
양식 다시 제출 확인이 웹페이지 나를 미치게 한다. (0) | 2023.11.20 |
- Total
- Today
- Yesterday
- 오토핫키가이드
- 엑셀셀보호
- #독립실행파일
- 티스토리챌린지
- #NSIS
- #파이썬인스톨러
- 코딩효율성
- 오블완
- 코딩튜토리얼
- 구글드라이브API
- 엑셀입력보호
- Bootstrap 5
- #InstallForge
- 효율적코딩방법
- #InnoSetup
- 스크립트작성기초
- #cx_Freeze
- #프로그램설치
- 엑셀보호
- coalesce는 한국어로 "코얼레스크" 또는 "코얼리스"
- 파이썬코드줄바꿈방법
- 뫄프로그래밍
- 테크에능한여성
- 프로그래머생활
- chatGPT3.5파이썬버전
- #소프트웨어배포
- 2분후종료오토핫키
- #파이썬패키징
- sql문장 날짜계산
- General error: 2031
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |