Я хочу, чтобы иметь возможность вернуть 3 переменных, перечисленных ниже, но когда я пытаюсь, я зашел в тупик, потому что я понятия не имел, как возвращать несколько записей из одной функции. Функция может возвращаться только один раз, и когда она это делает, она завершается, так что же работает?Функция возвращает несколько переменных
function M($username){
$query = "SELECT * FROM msg WHERE `to` = '".$this->userid."' && `to_viewed` = '0' && `to_deleted` = '0' ORDER BY `created` DESC";
$stmt = $this->connection->prepare($query);
$stmt->execute();
$data = $stmt->fetch(PDO::FETCH_ASSOC);
$num_rows = $stmt->fetchColumn();
if($num_rows) {
$i=0;
$this->messages = array();
while($row = $data) {
// want to return these 3 for each result
$this->messages[$i]['id'] = $row['id'];
$this->messages[$i]['title'] = $row['title'];
$this->messages[$i]['message'] = $row['message'];
$i++;
}
} else {
return 1;
}
}
Если я хочу, чтобы вернуть 3 переменные, то итерация остановится, и не будет продолжаться до тех пор, пока цикл делается .. может кто-нибудь помочь мне? Я немного бил головой об этом.
Похоже на проблему XY. Не можете ли вы просто вернуть массив? – elclanrs
Нет .. если я поместил его в массив: return array (var1, var2, var3), функция закончится .. и итерация также прекратится, что победит всю точку хранения всех найденных записей с использованием запроса в массив. – user2693390
use 'while ($ row = $ stmt-> fetch (PDO :: FETCH_ASSOC)) {' –