Php 使用域名创建表失败

Php 使用域名创建表失败,php,database,mysqli,create-table,Php,Database,Mysqli,Create Table,我试图在用户提交域名时创建一个表。它肯定会是一个.com、一个.net或一个.什么的 问题是,当我的代码包含.anywhere时,它不会创建表 它适用于没有.something的名称和字符 $domain=$_POST['domain_name'];//it is dramatainment.com $table = mysqli_query($connection, "CREATE TABLE $domain ( user_id INT(6) UNSIGNED AUTO_INCREMENT

我试图在用户提交域名时创建一个表。它肯定会是一个.com、一个.net或一个.什么的 问题是,当我的代码包含.anywhere时,它不会创建表 它适用于没有.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));
}

create table命令有这个限制吗?这可以解决吗?

您可以尝试用下划线替换点

您可以找到表名中允许使用的字符

此外,可以使用以下语法进行查询,这将与表名冲突:

SELECT * FROM dbname.table_name;
$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
)';
更新:可以使用反勾号将表名括起来:

SELECT * FROM dbname.table_name;
$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
)';

您可以尝试用下划线替换点

您可以找到表名中允许使用的字符

此外,可以使用以下语法进行查询,这将与表名冲突:

SELECT * FROM dbname.table_name;
$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
)';
更新:可以使用反勾号将表名括起来:

SELECT * FROM dbname.table_name;
$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
)';

某些特殊字符对于标识符(如表名)无效


请参见

某些特殊字符对于标识符(如表名)无效


请参见

不要相信你总能得到一个好域名,请使用。难道你不想将包含此数据的行添加到一个名为“domains”或其他的预先存在的表中吗?@tom我喜欢你的想法。但在我的例子中,我需要为域名创建的表。谢谢:)可能重复的“不相信你总能得到一个好域名”,请使用。你不想实际将包含此数据的行添加到一个名为“域”或其他的预先存在的表中吗?@tom我喜欢你的想法。但在我的例子中,我需要为域名创建的表。谢谢:)可能重复感谢您的回复。成功了。你能解释一下倒勾号有什么区别,使得查询能够使用.com处理名称吗?谢谢你的回复。成功了。你能解释一下倒勾号有什么区别,使得查询能够使用.com处理名称吗?