2013-01-16 26 views
0

我目前正在嘗試創建一個函數,我可以控制哪些字段以及哪些值被拉取。這是我想到的,但它不起作用。我得到沒有錯誤,它返回一個空數組。需要幫助在PHP中創建一個通用的「getter」函數

public function test ($field, $id) { 
    $sql = $this->con->prepare("SELECT ? FROM Content WHERE id=?"); 
    $sql->bindParam(1, $field); 
    $sql->bindParam(2, $id); 
    $sql->execute(); 

    while ($row = $sql->fetch()) { 
    echo $row; 
    } 
} 

我不確定「選擇?...」部分我不是100%確定這是正確的方法。基本思路是我可以撥打任何地方的電話,如:

< ?php $obj = new handler; $obj->test($_GET['Title'], $_GET['id']); ?>這將使用正確的ID回顯標題。

+1

這個函數的目的是什麼? –

+0

看看這個:http://stackoverflow.com/a/13333344/1322435。您可以將其調整爲Select查詢。 –

回答

1

準備報表的工作方式是quesry已準備好,然後發送字段的數據。因爲第一個'?'指的是它不能被準備的實際部分查詢。 解決方法: 一)取整行並返回你需要的領域

$this->con->prepare("SELECT * FROM Content WHERE id=?"); 
//....... 
return $row->$field; 

B)插入域原料到查詢(你可以儘管使用引號)

$this->con->prepare("SELECT `{$field}` FROM Content WHERE id=?"); 

此外,如果你打算像你描述的那樣使用它你可能會對數據庫進行大量的重複調用

+2

這是誰?爲什麼?如果你打算-1,**告訴寫它的人如何改進** – Jimbo