반응형
저는 PHP의 내장 MySQLi 클래스의 기능을 활용하는 클래스를 만들었으며 데이터베이스 상호 작용을 단순화하기위한 것입니다. 그러나 OOP 접근 방식을 사용하면 쿼리가 실행 된 후 올바른 행 수를 반환하는 num_rows 인스턴스 변수로 인해 어려움을 겪고 있습니다. 제 수업의 스냅 샷을보세요 ...
class Database {
//Connect to the database, all goes well ...
//Run a basic query on the database
public function query($query) {
//Run a query on the database an make sure is executed successfully
try {
//$this->connection->query uses MySQLi's built-in query method, not this one
if ($result = $this->connection->query($query, MYSQLI_USE_RESULT)) {
return $result;
} else {
$error = debug_backtrace();
throw new Exception(/* A long error message is thrown here */);
}
} catch (Exception $e) {
$this->connection->close();
die($e->getMessage());
}
}
//More methods, nothing of interest ...
}
다음은 샘플 사용입니다.
$db = new Database();
$result = $db->query("SELECT * FROM `pages`"); //Contains at least one entry
echo $result->num_rows; //Returns "0"
exit;
이것이 정확하지 않은 이유는 무엇입니까? 결과 개체의 다른 값은 정확합니다 (예 : "field_count"). 어떤 도움이라도 대단히 감사합니다.
시간 내 주셔서 감사합니다.
해결 방법
코드는 위의 소스 (Johan Abildskov)에서 가져온 것입니다.
$sql = "valid select statement that yields results";
if($result = mysqli-connection->query($sql, MYSQLI_USE_RESULT))
{
echo $result->num_rows; //zero
while($row = $result->fetch_row())
{
echo $result->num_rows; //incrementing by one each time
}
echo $result->num_rows; // Finally the total count
}
절차 적 스타일로도 유효성을 검사 할 수 있습니다.
/* determine number of rows result set */
$row_cnt = mysqli_num_rows($result);
참조 페이지 https://stackoverflow.com/questions/6538891
반응형
'MySql' 카테고리의 다른 글
MySQL 그룹 기능에서 지원되지 않는 참조 (0) | 2020.10.05 |
---|---|
MySQL에서 SUM ()으로 업데이트 (0) | 2020.10.05 |
MySQL로 임의의 행 선택 (0) | 2020.10.04 |
MySQL Java를 사용하여 MySQL 데이터베이스에서 탭으로 구분 된 파일을 가져 오는 방법은 무엇입니까? (0) | 2020.10.04 |
MySQL Java에서 프록시를 통한 MySQL Connect (0) | 2020.10.04 |
댓글