Background Image
응용개발
2009.04.16 20:58

PHP에서 prepared statement 사용하기

조회 수 21454 추천 수 0 댓글 3
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
일반적으로 PHP에서 CUBRID 를 사용한 질의를 사용할때는 다음과 같은 형식으로 사용합니다.

$qry = "select * from olympic where host_year=1988 and host_nation='Korea' ";
$result = cubrid_execute($con, $qry);
$row = cubrid_fetch($result);

이것을 Prepared statement 를 사용하도록 하면 다음과 같은 형식이 됩니다.
$HOST_YEAR = 1988;
$HOST_NATION = "Korea"

$qry = "select * from olympic where host_year= ? and host_nation= ? ";
$req = cubrid_prepare($con, $qry);
$res = cubrid_bind($req, 1, $HOST_YEAR, "NUMERIC");
$res = cubrid_bind($req, 2, $HOST_NATION, "STRING");
$result = cubrid_execute($req);
$row = cubrid_fetch($req);
....
if ($req > 0) cubrid_close_request($req);

주의 하셔야 할 점은, Prepared statement 를 사용 할 경우, fetch 시 result 값을 인자로 주는 것이 아니고, request handle 을 인자로 주어야 한다는 것입니다.

또한, 사용한 request handle은 반드시 cubrid_close_request 함수로 해제를 해 주어야 합니다.

  • ?
    박진호 2009.04.22 00:26
    prepare 기능에 output 변수 기능은 언제쯤 나올 수 있을까요?
  • ?
    brightest 2009.04.22 02:20
    사용하여 주셔서 감사합니다~^^. 해당 기능에 대하여 좀더 자세히 설명해 주실 수 있을까요? 기능 추가 여부는 해당 내용을 구체적으로 확인 및 검토 후 결정할 수 있을 것 같습니다~.
  • ?
    박진호 2009.05.05 09:20
    예전에 자료실에 올려놓은 글이 있습니다. 좀 오래된것인데요. ^^ 


    cubrid_prepare()와 cubrid_bind() 함수가 나오면서 php에 대해서도 많이 지원을 하는구나 생각했는데요. 
    out 변수를 받을 수 있는 형태가 없어서 윗 글과 비슷하게 만들어서 쓰고 있습니다. 

    아쉽게 프로시저를 사용할 때 output 변수는 따로 지정 할 수 있는 방법이 없는 것 같더라구여. 

    oracle 의 경우는 

    oci_bind_by_name() 함수로 변수를 지정할 수 있고 in, out 두 변수 모두 사용 할 수 있어서 따로 out 변수 지정을 하지는 않아도 out 변수를 받을 수 있습니다. 

    mssql 의 경우는 

    프로시저를 사용할 때 mssql_bind() 함수로 변수 지정을 하구여 out 변수 인지 아닌지는 

    bool mssql_bind ( resource $stmt , string $param_name , mixed &$var , int $type [, bool $is_output= false [, bool $is_null= false [, int $maxlen= -1 ]]] )

    $is_output 매개변수로 지정 할 수가 있습니다.  

    그래서 cubrid도 그런식으로 지원이 되었으면 좋지 않을까 하고 올려보았습니다. 

  1. JAVA SP를 통해 다른 데이터베이스 연결하는 경우 잊지 말자.

  2. JDBC 사용시 SQL 로깅 - p6spy 사용

  3. JDBC 커넥션 스트링에 UTF-8 명시하는법

  4. Java Data Type의 CUBRID Data Type으로의 변경 Tip

  5. MySQL의 Blob타입을 CUBRID로 변환하기

  6. ODBC 드라이버를 이용한 Prepare 사용하기.

  7. PHP PEAR extension Cache-Lite 를 이용한 응용 프로그램 최적화

  8. PHP PEAR extension 을 이용한 DB Time 추적

  9. PHP 성능 최적화를 위한 고려 사항

  10. PHP 프로그램을 작성할때 주의할 점

  11. PHP에 CUBRID 모듈 추가시 모듈이 로드되지 않는 문제에 대한 해결 방안 하나입니다

  12. PHP에서 Prepared statement 사용시 NULL 값을 바인딩 하는 방법

  13. PHP에서 prepared statement 사용시 BIND 관련 팁

  14. PHP에서 prepared statement 사용하기

  15. WHERE 조건에서 다중 컬럼 IN절 처리 최적화 방법 (cubrid + ibatis)

  16. Weblogic 10.0 사용시 JDK 1.5를 사용한 JDBC 드라이버 사용시 주의사항.

  17. Windows 환경에서 JAVA SP 사용 utf-8 한글 깨짐 해결

  18. Windows에서 32bit 버전의 PHP 설치 후 CUBRID와 연동 실패 시 해결 방법

  19. cubrid-php module r2.2 이상 버젼에서 configure시에 주의사항

  20. cubrid_fetch_all() php 함수로 만들어 사용하기

Board Pagination Prev 1 2 3 Next
/ 3

Contact Cubrid

대표전화 070-4077-2110 / 기술문의 070-4077-2113 / 영업문의 070-4077-2112 / Email. contact_at_cubrid.com
Contact Sales