num_rows он возвращает мне 0 в MySQLi / PHP

У меня есть следующий SELECT PHP, где я пробую считать количество реестров, которое есть, но всегда возвращает мне 0.

Код PHP:

$sname = "localhost";
$uname = "t**********ub";
$upass = "b&**********Vr";
$dbname = "t**********ub";

$conn = new mysqli($sname, $uname, $upass, $dbname);

$stmt = $conn->prepare("SELECT user FROM users_links");
$stmt->execute();

echo $stmt->num_rows;

Изображения, которые показывают имя таблицы, колонны, которая выбирается и которая да есть реестры: introducir la descripción de la imagen aquí introducir la descripción de la imagen aquí

0
задан 11.03.2019, 12:06
2 ответа

только эти ejecutando ты должен хранить результаты с: $stmt->store_result();

$sname = "localhost";
$uname = "t**********ub";
$upass = "b&**********Vr";
$dbname = "t**********ub";

$conn = new mysqli($sname, $uname, $upass, $dbname);

$stmt = $conn->prepare("SELECT user FROM users_links");
$stmt->execute();
$stmt->store_result();
echo $stmt->num_rows;
1
ответ дан 19.11.2019, 22:17
  • 1
    ¿ Кто-то знает qué различие есть между prepare и execute и прямо query? ¿ В обоих случаях serí в необходимый один store_result? ¡ Спасибо! – David JP 11.03.2019, 12:55
  • 2
    ты можешь видеть учебник в php приготовьте – Bryro 11.03.2019, 13:02
  • 3
    Так как учебник оставил меня как дела... :( Investigaré cuá l - различие между тем, чтобы готовить и выполнять консультацию... Потому что query он говорит, что он реализует консультацию. – David JP 11.03.2019, 13:07
  • 4
    @David действительно функционирование num_rows в mysqli ненадежное в том смысле, что он зависит от другой configuració n. Или же, завись от, если está или не конфигурировавший, чтобы помещать результаты в буфер или не (используй query или prepare). По умолчанию mysqli он не приходит конфигурировавший, чтобы помещать результаты в буфер (así он má s легкий), поэтому необходимо использование store_result, чтобы помещать их в буфер и тогда знание cuá ntas линии есть. Я traté тема с má s детали в этом ответе , достигая ademá s примеры, основанные в có я говорю реально. – A. Cedano 12.03.2019, 03:21

Если у тебя есть проблемы с num_rows, ты должен заявлять-> store_result () сначала:

<?php
$mysqli = new mysqli("localhost","root", "", "tables");

$query = $mysqli->prepare("SELECT * FROM table1");
$query->execute();
$query->store_result();

$rows = $query->num_rows;

echo $rows;

?>
0
ответ дан 19.11.2019, 22:17