찾다

 >  Q&A  >  본문

PDO 사용 가이드: 다중 쿼리를 사용하여 SQL Server 작동

<p>결과 세트를 반환하지 않는 일부 쿼리를 실행한 다음 <em>실제</em> 쿼리를 실행하여 결과를 얻고 싶습니다. 다음은 작동하지 않는 예입니다. </p> <pre class="brush:php;toolbar:false;"><?php 노력하다 { $db = new PDO('dblib:host=myhost;dbname=master','user','password'); $query = "@entier int = 1 선언;"; $db->exec($query); $query = "@enter 선택;"; $stmt = $db->query($query); $rows = $stmt->fetchAll(); print_r($행); } 잡기(PDOException $e) { 인쇄($e->getMessage()); } 잡기 (예외 $e) { 인쇄($e->getMessage()); } ?></pre> <p>다음 코드도 작동하지 않습니다. </p> <pre class="brush:php;toolbar:false;">{를 시도해보세요 $db = new PDO('dblib:host=myhost;dbname=master','user','password'); $query = "@entier int = 1 선언; @entier 선택;"; $stmt = $db->query($query); $rows = $stmt->fetchAll(); print_r($행); } 잡기(PDOException $e) { 인쇄($e->getMessage()); } 잡기 (예외 $e) { 인쇄($e->getMessage()); } ?></pre> <p>그러나 다음 코드는 작동합니다: </p> <pre class="brush:php;toolbar:false;"><?php 노력하다 { $db = new PDO('dblib:host=myhost;dbname=master','user','password'); $query = "1을 선택하세요;"; $stmt = $db->query($query); $rows = $stmt->fetchAll(); print_r($행); } 잡기(PDOException $e) { 인쇄($e->getMessage()); } 잡기 (예외 $e) { 인쇄($e->getMessage()); } ?></pre> <p>도움을 주셔서 감사합니다</p>
P粉178132828P粉178132828458일 전492

모든 응답(1)나는 대답할 것이다

  • P粉770375450

    P粉7703754502023-08-14 16:31:58

    오래된 내용이라는 것을 알고 있지만 Google을 통해 이 질문을 찾는 다른 분들을 위해 말씀드립니다. 여러 쿼리의 결과 집합을 반복하려면 PDOStatement::nextRowset을 사용해야 합니다.

    하지만 일부 버전에서는 nextRowset 및 dblib를 사용할 때 메모리 문제가 있는 것 같아서(제 경우에는 94Tb의 메모리가 할당되었습니다...) 결국 여러 SQL 쿼리를 모두 피하기 위해 다시 설계했습니다(값을 복사하는 동안) 사용되는 곳에서 선언됨).

    회신하다
    0
  • 취소회신하다