2016-08-17 13 views
1

$startという変数を作成したいと思います。値として、table_exと呼ばれるテーブルの最後の行からtimestampという列から1つの値を選択したいとします。これまで私はこれを持っています:テーブルから1つの値を選択し、変数に渡す - 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

クエリは単なる文字列である、あなたはあなたがクエリ – RiggsFolly

+3

'SELECTを含む文字列を持っていたところ、それは魔法のように見えると思うだろう、なぜその文字列をexecし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

ヒント:タイムスタンプは列名であり、テーブル名ではありません。 – RiggsFolly

関連する問題