这是为了创建一个名为用户id的新表
$tablename=$_SESSION['lgn-id'];
mysql_query("CREATE TABLE $tablename(
qtno INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY(qtno),
qt VARCHAR())")
or die(mysql_error());
echo " so I created one!";
它显示以下错误表名称为text36.txt@gmail.com
您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以便在'@ gmail.com附近使用正确的语法(qtno INT NOT NULL AUTO_INCREMENT,PRIMARY KEY(qtno),qt V'在第1行
答案 0 :(得分:4)
问题在于不带引号的表名以及VARCHAR()
。它必须有一个长度,例如VARCHAR(100)
。
答案 1 :(得分:0)
从错误中可以看出问题很明显,你的表名中不能有@
个字符。
你可以用反引号来包装它来解决这个问题。您还需要指定varchar()
参考:9.2. Schema Object Names,11.1.6.1. The CHAR and VARCHAR Types
答案 2 :(得分:0)
您的create语句应为
CREATE TABLE `$tablename`(
qtno INT(10) NOT NULL AUTO_INCREMENT,
qt VARCHAR(100),
PRIMARY KEY(qtno))
为每个用户创建单独的表是个坏主意,假设你有1000多个用户,你想创建1000多个表吗?为UserId, Post
之类的帖子创建表,并从用户表中存储用户ID并发布
您可以创建像
这样的帖子表CREATE TABLE UserPosts
(
id INT(10) NOT NULL AUTO_INCREMENT,
UserId Varchar(100),
UserPost varchar(1024),
InserDate DateTime,
PRIMARY KEY(id)
)
然后你可以做
select UserId, UserPost FROM UserPosts Where UserId = 'text36.txt@gmail.com'