0
我剛開始玩PDO,我試圖創建一個函數來顯示給定表名的所有數據。在閱讀了幾篇文章後,我發現了一個解決方案,我可以開始工作(下面用硬編碼的select語句顯示)。然而,當我綁定我的字段名稱時,我無法讓我的execute語句正常工作(我得到的異常類似於:Undefined index:person_id)。我應該提及我的類擴展PDO:PHP - (PDO)使用綁定變量執行
/*********************************************************************
*Function showTable
*Purpose Display all information for a given table.
*Params $sTable -> Table name
********************************************************************/
public function showTable($sTable)
{
$result;
try
{
if(isset($sTable))
{
//create a result in a table format
$result = "<table>";
//$stmt = $this->prepare('DESCRIBE :sTable');
$stmt = $this->prepare('DESCRIBE ' . $sTable);
//$stmt->bindParam(':sTable', $sTable);
$stmt->execute();
//array version of the column names
$aCols = $stmt->fetchAll(PDO::FETCH_COLUMN);
//string version of the column names
$sCols = implode (", ", $aCols);
//$stmt = $this->prepare('SELECT :fields FROM :sTable');
//$stmt = $this->prepare('SELECT :fields FROM person');
$stmt = $this->prepare('SELECT person_id, first_name, last_name FROM person');
//$stmt->execute(array(':fields'=>$sCols, 'stable'=>$sTable));
//$stmt->execute(array(':fields'=>$sCols));
$stmt->execute();
while($row = $stmt->fetch(PDO::FETCH_ASSOC))
{
var_dump($row);
$result = $result . "<tr>";
foreach($aCols as $col)
{
//var_dump($row);
$result = $result . " <td>" . $row[$col]. "</td>";
}
$result = $result . "</tr>";
}
$result = $result . "</table>";
}
return $result;
}
catch(PDOException $e)
{
if($this->bDebug)
{
echo $e->getMessage();
}
}
}
就像我說的硬編碼的選擇string作品,但是當我註釋掉硬編碼,並取消它引發異常綁定的執行。
哦,我現在明白了。非常感謝你。我會盡快設置爲可接受的答案。 – Travis
有了這些信息,我按照我想要的方式工作,再次感謝 – Travis