2012-06-11 31 views
0

如何使用變量中的數據創建具有相同名稱的表?使用變量中的數據在mysql中創建數據庫表

如果有一個名爲$ user_data的變量,並且我們訪問了['username']值,那麼如何使用這個值創建一個具有相同值的數據庫表,這樣每個用戶都可以在數據庫中擁有自己的表,並且它的名稱與數據庫中的用戶名相同。

這是鏈接表或什麼是佈局數據庫數據的最佳方式的正確道路。以及如何通過共享數據連接表和數據庫?

回答

0

這些方針的東西:

mysql_query("CREATE TABLE {$user_data['username']}(id INT NOT NULL AUTO_INCREMENT); 
0

您可以查詢表的創建。

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)"); 

在查詢的括號內,您應該放置所需的表結構。

0

這是一個非常糟糕的主意。實際上在這個主題SQL Antipatterns書(順便說一下,我的建議,得到它),這個主題「Metadata Tribbles」。

首先,在用戶的情況下,這將打開你申請額外注入的威脅。簡單的一次和二次sql注入(閱讀回合herehere)。這會降低您索引數據的能力。

相反,你應該把所有用戶細節一個(或兩個,如果大量使用的網站)表,並利用外鍵可將用戶鏈接到,然後做出其他內容。

+0

嗨。謝謝,我正在考慮表格是可以猜測的。做這個的最好方式是什麼。我希望每個用戶都擁有自己的不同屬性的數據。或者像所說的那樣將所有數據轉儲成一個更好?儘管我猜測查找時間較慢。有沒有辦法在運行中設置和重置數據庫表名? – jarryd