У меня есть проблема, когда пользователь select table в yii2, данные не отображаются
$sqlGetuser = "select * from user ";
$sqlquery = Yii::$app->db->createCommand($sqlGetuser)->query();
foreach($sqlquery as $row){
// echo $row;
// echo "saya";
echo $row['username'];
}
Ошибка в этой строке:
$sqlquery = Yii::$app->db->createCommand($sqlGetuser)->query();
query() возвращает yii\db\DataReader
. Для возврата массива строк используйте queryAll():
$rows = Yii::$app->db->createCommand($sqlGetuser)->queryAll();
Если вы хотите использовать query()
, вам нужно прочитать данные по-разному:
$command = $connection->createCommand('SELECT * FROM "user"');
$reader = $command->query();
while ($row = $reader->read()) {
$rows[] = $row;
}
// equivalent to:
foreach ($reader as $row) {
$rows[] = $row;
}
// equivalent to:
$rows = $reader->readAll();
См. Больше в официальных документах.
Также укажите название таблицы, как рекомендуется, так как это зарезервированное слово.
$row
?