1
我正在編寫一個軟件,它可以生成用戶定義的原始SQL查詢執行中的pdf報告。 pdf包含一個包含SQL結果行的簡單表。我想添加一個表頭,其中包含與SQL結果一起檢索的列名稱。 SQL中的列標題可能有不同的結構,e.g:在Doctrine/PDO中,如何獲取sql查詢列名稱
a) select * from users;
b) select name, surname, email from users;
c) select name as UserName, surname as UserSurname, email as UserEmail from users;
到目前爲止,我取SQL結果的關聯數組,取第一個行的鑰匙,並把它們作爲列名。 只有在結果集中至少有1個結果時纔有效,所以這種方法存在嚴重缺陷。
- 我可以使用「無結果」標籤生成pdf。
- 我可以在命名列的SQL查詢上運行一個正則表達式並執行
describe table x
,但這顯然很荒謬。 - 我也有更荒謬的想法,但那不是這樣。
有沒有人有任何想法解決這個問題? 我在MySQL上使用了Doctrine,但簡單的PDO方法與Doctrine的方法一樣好。
編輯
張貼這個問題時,我便想起我可以生成一個視圖我的SQL查詢,然後運行SHOW COLUMNS FROM randomViewName;
然後立即刪除該視圖之後。 這是hacky,需要一些數據庫安全工作(我可以處理),但它是一個工作候選人。
您認爲如何?
其通常的情況下,你不知道提交的名稱是 – 2014-11-23 20:42:42
創建一個視圖 - 耶穌不能你只是鍵入他們的數組,或其他var?數據庫結構不會經常變化 – 2014-11-23 20:56:45
是的,一種「觀點」方法剛剛來到我的頭上,我編輯了這個問題。 不,我不能放列名稱,因爲它是定義SQL的用戶。他可以根據需要命名這些列。 – lilly 2014-11-23 20:59:26