如何使用變量中的數據創建具有相同名稱的表?使用變量中的數據在mysql中創建數據庫表
如果有一個名爲$ user_data的變量,並且我們訪問了['username']值,那麼如何使用這個值創建一個具有相同值的數據庫表,這樣每個用戶都可以在數據庫中擁有自己的表,並且它的名稱與數據庫中的用戶名相同。
這是鏈接表或什麼是佈局數據庫數據的最佳方式的正確道路。以及如何通過共享數據連接表和數據庫?
如何使用變量中的數據創建具有相同名稱的表?使用變量中的數據在mysql中創建數據庫表
如果有一個名爲$ user_data的變量,並且我們訪問了['username']值,那麼如何使用這個值創建一個具有相同值的數據庫表,這樣每個用戶都可以在數據庫中擁有自己的表,並且它的名稱與數據庫中的用戶名相同。
這是鏈接表或什麼是佈局數據庫數據的最佳方式的正確道路。以及如何通過共享數據連接表和數據庫?
這些方針的東西:
mysql_query("CREATE TABLE {$user_data['username']}(id INT NOT NULL AUTO_INCREMENT);
您可以查詢表的創建。
mysql_connect("localhost", "bill", "3pD]gks*dg");
mysql_select_db("user_db");
mysql_query("CREATE TABLE ".$user_data['username']."(some_text varchar(15), some_int int)");
在查詢的括號內,您應該放置所需的表結構。
這是一個非常糟糕的主意。實際上在這個主題SQL Antipatterns書(順便說一下,我的建議,得到它),這個主題「Metadata Tribbles」。
首先,在用戶的情況下,這將打開你申請額外注入的威脅。簡單的一次和二次sql注入(閱讀回合here和here)。這會降低您索引數據的能力。
相反,你應該把所有用戶細節一個(或兩個,如果大量使用的網站)表,並利用外鍵可將用戶鏈接到,然後做出其他內容。
嗨。謝謝,我正在考慮表格是可以猜測的。做這個的最好方式是什麼。我希望每個用戶都擁有自己的不同屬性的數據。或者像所說的那樣將所有數據轉儲成一個更好?儘管我猜測查找時間較慢。有沒有辦法在運行中設置和重置數據庫表名? – jarryd