mysqli — Попытка передать переменную количества результатов в переполнении стека

Я передаю запрос SQL через функцию, которая возвращает количество результатов запроса SELECT. Результатом является правильный счетчик для метода mysqli_num_rows (), но он не устанавливает переменную счетчика равной этому числу и вместо этого сохраняет счетчик равным своему первоначальному значению.

public function getNum($sql){
$count = 0;  //set the count variable
if($result = $this->query($sql)){
//echo 'No results for criteria';
$count = mysqli_num_rows($result); //count is properly set to number
}                                  //does not modify outside count variable
return $count;  //returning 0 or whatever count was originaly set to
}   //count does not change despite $count inside the if statement being changed

Вот что такое запрос $ this->

public function __construct(){
$this->mysqli = new mysqli('localhost', 'root', '', 'mydb');
}

public function query($sql){
return $this->mysqli->query($sql);
}

Я точно знаю, что запрос выполняется. Проблема в том, что переменная не изменяется для возврата.

-1

Решение

Как я понимаю у вас проблема, вы хотите установить переменную $count внутри функции, но вы должны знать, что переменные внутри функций не могут быть доступны снаружи, и наоборот, это из-за переменная область в PHP.

Вы можете попробовать это:

var $count;
function set_count($new_value) {
$this->count = $new_value;
}
function get_count() {
return $this->count;
}
public function getNum($sql){
$count = 0;  //set the count variable
if($result = $this->query($sql)){
$count = mysqli_num_rows($result);
}
//set `$count`
$this->set_count($new_value);
return $count;
}
//and if you want to get the count
echo $this->get_count();
-1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]