使用域名创建表失败

时间:2016-08-19 15:58:15

标签: php database mysqli create-table

每当用户提交他/她的域名时,我都会尝试创建一个表。它肯定会是.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命令是否有此限制?这可以解决吗?

2 个答案:

答案 0 :(得分: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
)';

答案 1 :(得分:0)

某些特殊字符对于表名等标识符无效。

请参阅http://dev.mysql.com/doc/refman/5.7/en/identifiers.html