2012-11-21 42 views
0

構建組件,版本1.5(會鬆動很快,我知道砍,但它是我所需要的工作。)的Joomla MySQL的tables.php語法

與/admin/tables/mycom.php問題文件。 (其中mycom是什麼組件名稱)

我沒有關注此文件的使用。從閱讀演練中,它創建了一個擴展JTable的表類。

現在,我使用的一些數據庫列名稱中有'空格'字符。即,而不是「field1的」域1「(不要問我,這不是我的數據。)

用於識別這些fiels的語法時纔是:

$myfield = null 

它說,這些引用您的字段mySQL表,但是我的字段名稱包含不適用於此語法的空間。

任何幫助理解這個類,它的PHP文件和它的用途將不勝感激。

+0

'$ GLOBALS ['hello there'] = null'會起作用,但它會是一個嚴重醜陋的方式來解決問題。 –

+0

你有什麼參考? – Plummer

+0

http://www.php.net/manual/en/reserved.variables.globals.php –

回答

1

通過爲你的表創建一個JTable類,大多數用於編輯你的表的代碼都是爲你完成的。我建議你在Joomla庫中熟悉JTable,這樣你就知道哪些函數是爲你預先編寫的,你可以使用和覆蓋。

至於你的DB列名有空格的問題......說實話這只是一個壞主意。以下是您的一些MySQL命名約定最佳實踐...。

  • 始終使用小寫字母而不是駝峯代替駝峯。同時考慮表名和列名。 (名字而不是名字,address_1而不是地址1
  • 每個表都應該有一個「id」列作爲主鍵,不要稱之爲UserID或其他任何東西
  • 表名應該是複數形式(profiles,supports,等)
  • 外鍵應該有相關的表格,然後下劃線標識的奇異名稱,例如:「PROFILE_ID」或「support_id」

如果可以,我會建議你做一些ALTER TABLE MySQL的更新例如

ALTER TABLE `#__example` CHANGE `Field 1` `field_1` VARCHAR(50) NOT NULL DEFAULT 'empty'; 
+0

不幸的是,我必須從供應商那裏獲取這些數據,並將該命名約定設置爲供應商的國家標準行業。 您是否知道在傳輸數據時更改該字段名稱的方法?它通過本地infile腳本上傳到Joomla DB。我可以在INFILE命令後創建一個ALTER TABLE命令嗎? – Plummer