Я пытаюсь подсчитать количество строк, возвращаемых запросом, и я делаю вот так:
$what = 'Norman'; $stmt = $conn->prepare('select names as names from names where names = :what'); $stmt->bindParam('what', $what); $stmt->execute(); $rows = $stmt->fetchColumn(); echo 'Rows found '.$rows; $stmt->setFetchMode(PDO::FETCH_ASSOC); while($row = $stmt->fetch()) { echo $row['names'] . "<br>"; }
Но я вообще ничего не получаю. Просто пусто. Каков правильный способ сделать это?
Если вы хотите получить количество возвращаемых строк, используйте rowCount
// ... $rows = $stmt->rowCount(); echo 'Rows found '.$rows; // ...
Похоже, вы используете здесь ненадлежащие функции.
$what = 'Norman'; $stmt = $conn->prepare('select names from names where names = ?'); $stmt->execute(array($what)); $rows = $stmt->fetchAll(); // it will actually return all the rows echo 'Rows found '.count($rows); foreach ($rows as $row) { echo $row['names'] . "<br>"; }
или вы можете сделать его еще более аккуратным, получив 1d-массив вместо 2d
$rows = $stmt->fetchAll(PDO::FETCH_COLUMN, 0); echo 'Rows found '.count($rows); foreach ($rows as $name) { echo $name . "<br>"; }
Но сначала вы должны сначала проверить ошибки PDO