PDO 그리고 쿼리 질문입니다.

PDO 그리고 쿼리 질문입니다.

QA

PDO 그리고 쿼리 질문입니다.

본문

몇가지 궁금증이 생겨 질문글을 남기게 되었습니다.

 

PDO로 바인딩하여 쿼리를 날릴때 int 형식이 string으로 변환됩니다.... 왜그런지 모르겠습니다.

소스한번보시죠

 


$pdo = new PDO($dns, 'id', 'pass'); //pdo 연결
 
$bind = array(':id' => 1);  // int타입
$sql = "SELECT * FROM member WHERE idx = :idx";
 
$stmt = $pdo->prepare($sql);
$stmt->execute($bind);

 

 

위의 코드처럼 바인딩하여 조회를하는데요.

:id의 값이 int타입으로 넘겨주는데


SELECT * FROM member WHERE idx = 1

WHERE 조건절에 idx = 1 //int

이렇게 되어야 정상이라고 생각하는데

 

쿼리 로그를 보면

SELECT * FROM member WHERE idx = '1';

string 타입으로 변환하여 검색을 합니다.

이거 이렇게되도 상관없나요?

 

 

 

 

이 질문에 댓글 쓰기 :

답변 3

$sql = "SELECT * FROM member WHERE idx = :idx";

$stmt = $pdo->prepare($sql);

$stmt->bindValue(":idx", 1, PDO::PARAM_INT);

$stmt->execute();

이런 식으로 처리해 보세요.

근데 mysql에서는 그게 문자열이든 정수든 상관 없습니다.

얘가 워낙 유연해서 문자열로 된 시간까지도 크기 비교를 해 줘서리...

답변을 작성하시기 전에 로그인 해주세요.
전체 6
QA 내용 검색
filter #pdo ×

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT