2015-03-03 37 views
0

我有一個麻煩,yii2選擇時表的用戶,數據沒有顯示出來如何在yii2中選擇表格用戶?

User Table

Result

$sqlGetuser = "select * from user "; 
          $sqlquery = Yii::$app->db->createCommand($sqlGetuser)->query(); 
          foreach($sqlquery as $row){ 
           // echo $row; 
           // echo "saya"; 
           echo $row['username']; 
          } 
+0

你能打印出「$ row」的內容嗎? – 2015-03-03 06:22:48

+0

亞.. 我改變我的代碼..這... $ sqlGetuser =「select * from user」; $ sqlquery = Yii :: $ app-> db-> createCommand($ sqlGetuser) - > queryOne(); print_r($ sqlquery);這個結果:Array([current_user] => local) – 2015-03-03 06:27:58

+0

您可能遇到表名「user」的問題,因爲它是保留字。嘗試將您的查詢更改爲'select * from「user」'或重命名該表? – 2015-03-03 06:36:41

回答

1

的錯誤是在這一行:

$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(); 

查看更多在official docs

也引用表名作爲adviced,因爲它是保留字。

+0

爲什麼您將其標記爲未被接受?這是可行的解決方案。 – arogachev 2015-04-09 11:53:38

相關問題