2012-06-25 3 views
2

유익한 사운드 blog post 2006 주 PDO에 기본 준비된 문을 사용하는 방법에 대한 이러한 사실 :기본 준비 진술 : 제한되어 있습니까?

  1. 기본 준비된 명령문은 낮은 성능의 결과로, 쿼리 캐시를 이용할 수 없습니다.
  2. 네이티브 준비 문은 "SHOW TABLES"와 같은 특정 유형의 쿼리를 실행할 수 없습니다.
  3. 네이티브 준비 문은 다른 "SHOW"쿼리의 열 길이를 올바르게 전달하지 못하므로 결과가 왜곡됩니다.

오늘은 얼마나 많은 부분이 사실입니까?

+0

[programmers.se]일까요? 확실하지 않음 비록 –

+2

우선 PDO의 초기 릴리스를 다루고 있습니다. 아무도 그 단계에서 그것을 사용하도록 권고하지 않았습니다. 또한 저자는 에뮬레이트 된 준비물을 사용하도록 권유하고 있습니다. 당신이 그를 잘못 판단한 것으로 추측하기에 충분해야합니다. –

+3

(1)과 (2)는 확실히 사실이 아니며 (3) 발생하지는 않았지만 보증 할 수는 없습니다. – Wrikken

답변

3

아니요, 최근 MySQL 버전을 사용하고있는 경우에는 그렇지 않습니다. 최소한 대부분은.

  1. 준비된 문은 쿼리 캐시 since MySQL 5.1.17을 사용합니다.

  2. 거의 모든 SQL 문을 준비 문으로 실행할 수 있습니다. list in the MySQL docs을 찾을 수 있습니다. 특히 SHOW TABLES은 그 목록에 없지만 솔직히 PHP에서 SQL 문을 사용한 적이 있습니까?

  3. 나는 그것에 대해 아무것도 몰라,하지만 그것은 고정되어 있다고 가정합니다.

은 여전히 ​​SQL 주입을 허용 준비된 명령문의 에뮬레이션 하지 인코딩 안전 것을 잊지 마세요과 같은 (정확한 상태에 따라) 할 수 있습니다.

3
  1. falae. MySQL 5.1.17 이후 the query cache works with prepared statements
  2. 왜 표시 할 테이블을 준비해야합니까?
  3. 소스를 인용 할 수 있습니까? 나는 개인적으로 어떤 이슈도 없었습니다.
+0

감사합니다. 이 텍스트는 [이 페이지] (http://wezfurlong.org/blog/2006/apr/using-pdo-mysql/)의 정확한 인용문입니다. – dotancohen

+0

그 페이지는 6 세 이상입니다. 그 이후로 몇 가지 버그가 수정되었습니다. PHP 공동체가 가지고있는 진정한 문제 중 하나는 오래된 정보가 떠 다니는 것입니다. 당신은 PHP 주제에 대한 페이지에서 제기 된 주장에주의를 기울여야하며, 신뢰성에 대한 하나의 좋은 지표는 시대입니다. 기사가 오래되면할수록 시대에 뒤 떨어진 것으로 나타납니다. – GordonM

관련 문제