2013-08-03 27 views
0

錯誤:數組字符串轉換在 /application/views/main_view.php上線11數組字符串轉換錯誤在PHP中的MVC

我的觀點main_view.php

<?php echo $someval; ?> 

我控制器

<?php 
class Main extends Controller { 
function index() 
{ 
$example = $this->loadModel('Example_model'); 
    $something = $example->getSomething(1); 
    $template = $this->loadView('main_view'); 
    $template->set('someval', $something); 
    $template->render(); 
} 
} 
?> 

我的模型

<?php 


class Example_model extends Model { 
public function getSomething($id) 
{ 
    $id = $this->escapeString($id); 
    $result = $this->query('SELECT email FROM users WHERE id="1"'); 
    return $result; 
} 
} 
?> 

我不明白爲什麼是一個錯誤。返回應該已經在String中了?有什麼建議麼?謝謝

+1

什麼在線11?您在這裏發佈的'mainview.php'文件只有一行。 –

+0

$ this-> query在做什麼?我想它要麼返回一個mySQl結果資源或一些數組與鍵 - >值對!?你有沒有試過$ result的某個fetch方法(例如mysql_fetchassoc),或者如果它返回一個數組,你試圖訪問它的值$ template-> set('someval',$ something ['email']); – thomas

回答

2

查詢$result的結果不是可以回顯的字符串。

$result = $this->query('SELECT email FROM users WHERE id="1"'); 

我不知道你在用什麼框架,但你需要看看如何檢索查詢結果。

+0

我正在使用pip,這只是它的示例應用程序 – user1851359

+0

通常查詢結果返回一個數組或對象。你正在將它傳遞給視圖並試圖迴應它。您需要查閱文檔以瞭解如何從對象或數組中獲取單個結果。 –

1

正如我在上面的評論中寫的。我猜

$result = $this->query('SELECT email FROM users WHERE id="1"'); 

語句不返回一個字符串。它可能會返回一個數組或結果資源。您可以打印一個變量

var_dump($result); 

如果它是一個數組嘗試

$template->set('someval', $something['email']); 

如果是,你可能必須先獲取數據的結果資源。如果它是一個MySQL資源,它就像

$arrayData = mysql_fetch_assoc($result); 

如果它既不是你必須檢查你的框架的文檔。

+0

'mysql_ *'函數不再維護**,不應該在任何新的代碼庫中使用。它正逐漸被淘汰,轉而採用更新的API。相反,您應該使用[PDO](http://php.net/pdo)或[MySQLi]([**準備好的語句**])(https://www.youtube.com/watch?v=nLinqtCfhKY)( http://php.net/msqli)。 –