是否有任何現有的PHP庫來創建或更新從數據定義的MySQL表?例如,Silverstripe可以做到這一點 - 每個模型定義了數據:PHP庫從數據定義生成mysql表
$db = array(
'FieldName' => 'Boolean',
'FieldName2' => 'Text',
);
$has_one = array(
'RelationName' => 'ObjectType'
);
產生沿
CREATE TABLE classname (Id INT, FieldName BOOLEAN, FieldName2 TEXT, RelationNameId INT)
什麼的行的表。當你將列添加到db數組時,它們被添加到數據庫中;如果新表與舊錶不兼容,則會創建一個新表並將舊數據導入到新表中。很確定它處理各種指數和事情。
是否有任何獨立的PHP庫,這樣做?我不想在這個項目中使用Silverstripe。
我最終的目標是能夠在HTML中創建一個包含表標識符和幾個輸入字段的表單,並將其提交給控制器,該控制器將爲提交的每一條數據創建一個包含數據類型的表。如果我在表單中添加一個字段,我希望控制器更新相應的表。
請不要建議從數據類型數組中編寫CREATE TABLE語句的方法 - 這只是我需要的開始。我還需要能夠通過在PHP中更改數據類型的數組來更新現有表 - 這比創建CREATE TABLE要困難得多。
主義可以做到這一點。 –
哦,是的,忘了提及教義。問題在於afaik Doctrine需要一種特定類型的數據定義,這些定義在實時構建時會有點困難 - 您能否輕鬆地在PHP中運行orm-schema-update命令,還是需要將其作爲shell命令?我想我可以生成簡單的YML,而不需要太多的工作......或者我可以直接使用模式定義工具嗎? –
你可以自己編寫腳本......它實際上並不是那種很難使用的vsprintf($ format,$ data),其中$ data是一個數組(你的$ db-array),而$ format是查詢 –