使用域名创建 table 失败
Creating table with the domain name fails
我试图在用户提交 his/her 域名时创建一个 table。它肯定会是 .com 或 .net 或 .something
问题是我的代码在包含 .anything 时不会创建 table
它适用于没有 .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命令有这个限制吗?这个能解决吗?
您可以尝试用下划线替换点。
Here 您可以找到 table 名称中允许使用的字符。
此外,可以使用此语法进行查询,这会与您的 table 名称冲突:
SELECT * FROM dbname.table_name;
UPDATE : 可以使用反引号括起 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
)';
某些特殊字符对于 table 名称等标识符无效。
我试图在用户提交 his/her 域名时创建一个 table。它肯定会是 .com 或 .net 或 .something 问题是我的代码在包含 .anything 时不会创建 table 它适用于没有 .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命令有这个限制吗?这个能解决吗?
您可以尝试用下划线替换点。
Here 您可以找到 table 名称中允许使用的字符。
此外,可以使用此语法进行查询,这会与您的 table 名称冲突:
SELECT * FROM dbname.table_name;
UPDATE : 可以使用反引号括起 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
)';
某些特殊字符对于 table 名称等标识符无效。