0
我在PHP中有一個網站,它使用多個MySQL表格,並使用mysql_select_db函數在它們之間切換。PHP + MySQL多DB網站到帶有前綴的單個DB網站。
DB1 (table1, table2, table3)
DB2 (table1, table2)
最後的託管不幸支持只有一個單一的數據庫。所以我想到了一個用自定義mysql_switch_prefix函數替換mysql_select_db函數的系統,該函數存儲一個字符串,該字符串將用作以下查詢中所有表名稱的前綴。
DB (DB1_table1, DB1_table2, DB1_table3, DB2_table1, DB2_table2)
接下來,我將使用自定義的mysql_query函數替換用「db_prefix」變量前綴表名的所有表名。
SELECT * FROM `table1` -> SELECT * FROM `DB1_table1`
有沒有一種方法(或正則表達式),以取代在SQL語句中的表名與變量前綴的表名?
現在,如果只有MySQL具有'模式',而不僅僅是'數據庫',我建議將它們分別放在一個單獨的'schema'中。是否有某些原因,他們_有前綴(你有表名衝突)?表格應該重新命名(更具描述性或獨特性)?否則,我會說只是讓名稱保持不變,並省去麻煩。 –
問題是你可以在很多地方和SQL查詢中使用表名,而不僅僅是在'from'之後。正則表達式可能會被構建,但它可能會錯過很多情況。 – fge