programing

MySQLi 개수(*)는 항상 1을 반환합니다.

powerit 2023. 8. 1. 20:52
반응형

MySQLi 개수(*)는 항상 1을 반환합니다.

테이블의 행 수를 세어보고 이 방법이 올바른 방법이라고 생각했습니다.

$result = $db->query("SELECT COUNT(*) FROM `table`;");
$count = $result->num_rows;

하지만 카운트는 항상 돌아옵니다.(int)1phpMyAdmin에서 동일한 쿼리를 사용하면 올바른 결과를 얻을 수 있습니다.테이블에 있어서 테스트를 해봤습니다.$count[0]역시, 하지만 그것은 되돌아옵니다.NULL.

이를 위한 올바른 방법은 무엇입니까?

레코드 하나를 가져와야 합니다. 카운트()의 결과가 포함됩니다.

$result = $db->query("SELECT COUNT(*) FROM `table`");
$row = $result->fetch_row();
echo '#: ', $row[0];

항상 연관된 검색을 시도합니다. 그러면 여러 사례의 결과에서 원하는 것을 쉽게 얻을 수 있습니다.

여기 예가 있어요.

$result = $mysqli->query("SELECT COUNT(*) AS cityCount FROM myCity")
$row = $result->fetch_assoc();
echo $row['cityCount']." rows in table myCity.";

이 방법이 더 읽기 쉽다고 생각합니다.

$result = $mysqli->query('select count(*) as `c` from `table`');
$count = $result->fetch_object()->c;
echo "there are {$count} rows in the table";

어레이에 대한 거부감이 있는 것은 아닙니다.

$result->num_rows. 쿼리의 영향을 받는 행 수만 반환합니다.테이블에서 카운트(*)를 수행할 때 하나의 행만 반환되므로 1 이외의 결과를 얻을 수 없습니다.

언급URL : https://stackoverflow.com/questions/3613074/mysqli-count-always-returns-1

반응형