2016-08-17 83 views
1

我想創建名爲$start的變量。作爲一個值,我想從名爲table_ex的表格的最後一行中選擇一個名爲timestamp的值。到目前爲止,我有這個:從表中選擇一個值並將其傳遞給變量 - php mysql

class Main { 
//some other code 

function dataBaseConnect(){ 
      //well working part 
     } 

function getTimeValue(){ 
     $sql = "SELECT `timestamp` FROM `table_ex` WHERE id=(SELECT MAX(id) FROM `table_ex`)"; 
    $this->start = $this->handler->query($sql, PDO::FETCH_COLUMN, 0); 
    } 

function printVal(){ 
     $this->dataBaseConnect(); 
     $this->getTimeValue(); 
     $this->messOuput = "Sth text " .$this->start; 
} 
} 

問題是變量沒有得到我想要的值。任何人都可以解釋我的問題在哪裏?

+1

查詢只是一個字符串,你exec的那個字符串,爲什麼你會認爲它會神奇地出現在你曾經有包含查詢 – RiggsFolly

+3

字符串'選擇timestamp FROM table_ex order by timestamp desc limit 1'? – RamRaider

+0

Ram也指出。您的實際查詢也不正確,因爲它試圖從列名稱而不是表格中進行選擇,並且如果您有時間戳記作爲列或表格,還可以進行改進 – RiggsFolly

回答

1

也許這會爲你工作:

function getTimeValue() 
{ 
    // note the table name is now used in the inner query 
    $sql = "SELECT `timestamp` FROM `table_ex` WHERE id=(SELECT MAX(id) FROM `table_ex`)"; 
    $this-start = $this->handler->query($sql, PDO::FETCH_COLUMN, 0); 
} 
+1

你可能想要理智地檢查那個查詢 – RiggsFolly

+0

爲什麼?我沒有綁定也沒有使用任何變量 –

+0

提示:timestamp是一個列名,而不是一個表名,或者如果其它方式,它仍然是一個無狀態查詢。 – RiggsFolly

相關問題