2012-06-25 76 views
0

爲什麼會產生一個對象?如何獲得一個字符串/數組而不是?Sql,Object vs String/Array

從Opencart的 相關:類stdClass的的對象不能被轉換成字符串

+3

沒有足夠的信息 – Robin

+0

你在使用什麼庫? – robbrit

+0

Google說CodeIgniter – biziclop

回答

0

你在你的查詢語法有錯誤,你將選擇「的product_id」,你不應該有apostrophies那裏。

$sql = $this->db->query(" 
    SELECT 'product_id' 
    FROM " . DB_PREFIX . "product_to_category 
    WHERE category_id = '" . $this->db->escape($category['category_id']) . "' 
"); 

您需要進行此更改。

$sql = $this->db->query(" 
    SELECT product_id 
    FROM " . DB_PREFIX . "product_to_category 
    WHERE category_id = '" . $this->db->escape($category['category_id']) . "' 
"); 
2

假設笨:

http://codeigniter.com/user_guide/database/queries.html

$this->db->query(); 

查詢()函數返回一個數據庫結果對象當「讀取」類型 查詢運行,你可以se顯示你的結果。

您可以處理結果集行作爲陣列,使用result_array

http://codeigniter.com/user_guide/database/results.html

$query = $this->db->query("YOUR QUERY"); 

foreach ($query->result_array() as $row){ 
    echo $row['title']; 
    echo $row['name']; 
    echo $row['body']; 
} 
+0

我得到「調用未定義的方法stdClass :: result_array()」。這是完全奇怪的,我沒有像通常那樣得到一個字符串/數組。 – Cleverbot

1
$sql = $this->db->query(" 
    SELECT 'product_id' 
    FROM " . DB_PREFIX . "product_to_category 
    WHERE category_id = '" . $this->db->escape($category['category_id']) . "' 
"); 
$rows = $sql->rows; //array of all returned values 
$row = $sql->row; //first row 

我強烈建議你使用var_dump($sql)調查什麼公共對象字段可能是有用的爲你。

*修正語法

+0

這完全變成了一個陣列謝謝!還有一件事,如果我的迴歸是單個字符串呢?我應該刪除「$ rows = #sql - > $ rows;」? – Cleverbot

+0

'$ query = $ this-> db-> query(「SELECT COUNT(*)AS FROM FROM」。DB_PREFIX。「country」);返回$ query-> row ['total'];'注意'$ query-> row',而不是'$ query-> rows'。 – Kirzilla

+0

工作正常,但我期望從數據庫中提取單個字符串值,或從數據庫中提取數組中的單個字符串值。當我嘗試你的初始方法時,它只是給了我值的名稱,而不是值本身。 – Cleverbot

相關問題