Это мой первый опыт работы с mysqli. Кажется, он ищет имя набора результатов между круглыми скобками в mysqli_num_rows (). Но когда я пробовал $ stmt, $ conn и ничего, у меня такая же ошибка. Срыв! Что происходит там, где $ WHAT находится в последней строке ниже?
Или, может быть, я пытаюсь ошибиться. Все, что я хочу сделать, это проверить, что результат был возвращен. Мне не нужно количество строк. Должен ли я просто делать оператор else с сообщением об ошибке? Это лучший способ сделать это? И есть ли хороший способ написать функцию для подключения и принятия запроса и его параметров? Я написал один для mysql, но это так по-другому! Я не собираюсь переписывать десятки запросов!
$conn = mysqli_connect($host, $user, $pwd, $db,$port=$port_nbr); if ($mysqli_connect_errno) { printf("Connect failed: %s\n", mysqli_connect_error()); exit; } if($stmt=$conn->prepare("SELECT id, name, status, type FROM organization")) { $stmt->execute(); $stmt->bind_result($org_id, $orgname, $orgstatus, $orgtype); $num=mysqli_num_rows($WHAT); }
Вы комбинируете процедурные и объектно-ориентированные подходы, когда хотите только ориентировать объекты. + Изменить
$num=mysqli_num_rows($WHAT);
в
$num = $stmt->num_rows();
mysqli_num_rows принимает результат запроса как параметр http://us.php.net/manual/en/mysqli-result.num-rows.php
Вы также можете использовать его в стиле ООП как $ result-> num_rows;