我從一些MS SQL PDO查詢構建HTML表。或試圖。我遇到的第一個障礙是我無法獲得特定表的列名。發現here,我一直在努力,我們的解決方案在mssql中獲取列名pdo
function getColumnNames(){
$sql = "select column_name from information_schema.columns where table_name = 'myTable'";
#$sql = 'SHOW COLUMNS FROM ' . $this->table;
$stmt = $this->connection->prepare($sql); //this is the line that triggers the error
try {
if($stmt->execute()){
$raw_column_data = $stmt->fetchAll(PDO::FETCH_ASSOC);
foreach($raw_column_data as $outer_key => $array){
foreach($array as $inner_key => $value){
if (!(int)$inner_key){
$this->column_names[] = $value;
}
}
}
}
return $this->column_names;
} catch (Exception $e){
return $e->getMessage(); //return exception
}
}
getColumnNames();
得到了錯誤:
Fatal error: Using $this when not in object context
而這(從相同的,所以後)
$q = $dbh->prepare("DESCRIBE username");
$q->execute();
$table_fields = $q->fetchAll(PDO::FETCH_COLUMN);
print_r($table_fields);
產生錯誤:
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000]: General error: 2812 General SQL Server error: Check messages from the SQL Server [2812] (severity 16) [(null)]'
我只是想獲取列的名稱,以便我可以循環並獲取其每行的值。我怎樣才能做到這一點?謝謝
感謝您指點我的文檔。雖然我不明白我必須做什麼。你能告訴我一個例子嗎? – 1252748
不幸的是,我沒有用於測試的MS SQL服務器。我發現[this](http://www.php.net/manual/en/ref.pdo-dblib.php#101323)。它有幫助嗎? – hek2mgl
不幸的是沒有這麼多。我對準備好的陳述並不十分了解。現在就試圖深入研究它們。感謝您的幫助 – 1252748