2014-11-15 10 views
0
 public function getMaxRID() { 

      // open a connection to database 
      $conn = $this->getConnection(); 

      if ($conn->connect_error) { 
       die("can not connect to database"); 
      } 

      $query = "SELECT MAX(RID) AS MAXRID FROM Words"; 
      $result = $conn->query($query); 

      if ($result->num_rows > 0) { 

       echo $result->fetch_assoc()["MAXRID"]; 
      } 
     } 

이것은 필드의 최대 값을 가져 오는 내 방법입니다. 이 경우 우리는 하나의 행과 하나의 필드가 "MAXRID"라는 것을 알고 있습니다. 나는이 방법으로 그것을 얻었지만, 그것은 권장 방법입니까?
fetch_assoc() 메소드가 $ result object 메소드의 제안 목록에 없습니다! 그러나 이것을 쓸 때 문제없이 실행합니다!MySql 데이터베이스에서 값/행 가져 오기

답변

1
public function getMaxRID() { 
      // open a connection to database 
      $conn = $this->getConnection(); 
      if ($conn->connect_error) { 
       die("can not connect to database"); 
      } 
      $query = "SELECT MAX(RID) AS MAXRID FROM Words"; 
      $result = $conn->query($query); 
      if ($result->num_rows() > 0) { 
       echo $result->row_array()["MAXRID"]; $result->free_result(); Unset($query); 
      } 
     } 
  • 변화 :

    1)은 항상 row_array을 행 하나 항상 검색 사용 NUM_ROWS() 함수

    2)를 사용하는()

    3) free_result을 (사용)에 메모리를 해제하십시오.

    4) 쿼리에 사용 된 변수를 해제하십시오.

+0

반환하기 $ 쿼리가 필요하지 않습니다, 출시 들어간 때 함수가 실행됩니다. – Mario

+0

하지만 동일한 변수를 사용하는 경우 도움이됩니다. –

1

당신의 방법에는 별다른 차이가 없다고 말하지만, MAXRID 값만 필요하기 때문에이 한 열을 직접 가져올 수 있습니다.

그래서 내가 fetchColumn을 사용하도록 추천 할 것입니다 : 당신은 mySQLi 사용하는

PDO 직접 열을 검색하는 방법이있다

if ($result->rowCount() > 0) 
{ 
    echo $result->fetchColumn(); 
} 
+0

FYI : OP가 PDO가 아닌 mysqli API를 사용합니다 – Ghost

+0

내 권리는 귀하의 잘못입니다. 글쎄, mysqli에는 비슷한 기능이 없다고 생각한다. 내 대답을 업데이트하려고합니다. – Mario

+0

아무런 해를 끼치 지 않고 아무런 해를 끼치 지 않고 :) 단지 몇 가지 정보를 가리키고 있습니다. – Ghost

관련 문제