2016-08-19 95 views
1

我試圖在用戶提交他/她的域名時創建一個表。這肯定會是一個.com或一個.net或.something 的問題是,當它包含.anything 它工作得很好的名字和人物我的代碼不會創建一個表沒有.something使用域名創建表失敗

$domain=$_POST['domain_name'];//it is dramatainment.com 

$table = mysqli_query($connection, "CREATE TABLE $domain (
user_id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, 
user_name VARCHAR(100) NOT NULL, 
user_domain VARCHAR(50) NOT NULL, 
user_email VARCHAR(50), 
user_password VARCHAR(50), 
user_date date 
) "); 
if(!$table) 
{ 
die('Could not create table: ' . mysqli_error($connection)); 
} 

creat table命令是否有此限制?這能解決嗎?

+0

不要相信你一定會得到一個不錯的域名,使用[準備好的語句(http://php.net/manual/en/mysqli.prepare.php)。 – Script47

+0

難道你不想實際上將這個數據添加到一個預先存在的表,稱爲'域'或什麼? –

+0

@tom我喜歡你的想法。但在我的情況下,我需要爲域名創建的表。感謝:) –

回答

0

您可以嘗試用下劃線替換點。

Here你可以在表名中找到允許哪個字符。

另外,也可以使用此語法,這將與你的表名衝突查詢:

SELECT * FROM dbname.table_name; 

UPDATE

$sql = 'CREATE TABLE `$tableName` (
user_id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, 
user_name VARCHAR(100) NOT NULL, 
user_domain VARCHAR(50) NOT NULL, 
user_email VARCHAR(50), 
user_password VARCHAR(50), 
user_date date 
)'; 
+0

謝謝你的迴應。有效。你能解釋一下反引號使得查詢能夠使用.com處理名稱有什麼不同嗎? –