2012-04-14 3 views
7

예를 들어, 업데이트, 삽입, 삭제 등의 작업을 수행 할 때 누가 알려 주면 mysqli_stmt::close();과 같은 메시지를 닫아야합니까? 내가 PHP 매뉴얼을 확인하고 무엇 close() 실제로 이해가 안 돼요.Mysqli 선언문의`close()`메소드는 무엇입니까?

예 :

$stmt = $dbh->prepare("SELECT `user_email` FROM `users` WHERE `user_email` = ? LIMIT 1"); 
$stmt->execute(array($email)); 
$stmt->close(); 
예를 들어 내가 각 쿼리에 대한 모든 execute()거래 여러 업데이트 쿼리가 있다면 내 질문의

다음 부분은 내가 거래 내에서 실행하고있다 은 내가해야 개별적으로 닫으시겠습니까? 왜냐하면 나는 각각의 execute() 후에 $stmt->close();을 사용할 필요가없는 거래이기 때문이다. 또는 모두 $stmt->close();을 사용하면됩니까?

+5

어떤 가까운 방법을 말하는 겁니까? 유사한 이름을 가진 'PDOStatement :: closeCursor' 만 있습니다 ... – Jon

+0

관련 질문 http://stackoverflow.com/questions/1046614/do-sql-connections-opened-with-pdo-in-php-have- 폐쇄 될 – Ozzy

+0

@ 존 나는 혼란 스러웠다, 나는 아래의 의견, 감사 phplover – PHPLOVER

답변

3

mysqli close 메서드를 사용하고있는 것처럼 보입니다. $ stmt-> close() 메서드는 이전에 열었던 데이터베이스 연결 (http://www.php.net/manual/en/mysqli.close.php)을 닫는 것만으로 닫힙니다.

EDIT : 당신이 사용하고있는 PDO라면, 나는 이해하지 못합니다. 왜 물음표 대신에 이름이 parametres인지를 알지 못합니다. 즉, 많은 사람들이 mysqli 대신 PDO를 선택하는 이유가 무엇입니까? 쿼리/문장에 대한보다 포괄적 인 시각을 가질 수 있습니다.

+0

나는 pdo를 처음 사용하여 $ stmt-> close()를 보았고 준비된 문을 닫고 $ stmt = null이 연결을 닫을 것이라고 생각했기 때문에 기본적으로 $ stmt-> close()를 사용했다. mysqli 절차 스타일? (예 : 나는 원래 게시물에 준 예제 문장에서 $ stmt-> close()를 사용하지 않는다)? 대신 나는 $ stmt = null; db에 대한 연결을 닫으시겠습니까? 감사합니다 phplover – PHPLOVER

+2

정확히는 아닙니다. $ stmt-> close()는 mysqli OOP 스타일을위한 것이며, mysql_close 또는 mysqli_close는 mysql (i) 절차 스타일이다. 그리고 예, PDO에서 데이터베이스 연결을 닫으려면 문을 NULL로 설정하기 만하면됩니다. – hskrijelj

+0

고마워, 이제 이해해 : 고마워. phplover – PHPLOVER

9

데이터베이스 변수를 null로 설정 한 연결을 닫는 대신 PDO에 close() 메소드가 없으므로 연결이 닫힙니다.

$stmt = null; 

두 번째 질문에 대답하려면 한 번만 연결을 닫으면됩니다. 데이터베이스에 대해 수행해야하는 모든 쿼리를 실행 한 후에

+0

Thannk 너 혼자 혼란스러워, 잘 설명해 줘, 고마워. – PHPLOVER