-2

これは、ユーザー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 構文にエラーがあります。1 行目の '@gmail.com( qtno INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(qtno), qt V' 付近で使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。

4

3 に答える 3

4

問題は、引用符で囲まれていないテーブル名とVARCHAR(). たとえば、長さが必要VARCHAR(100)です。

于 2013-01-05T18:50:47.433 に答える
0

この問題はエラーから明らかです@。テーブル名に文字を含めることはできません。

それを修正するには、バックティックでラップすることができます。長さも指定する必要がありますvarchar()

参考文献: 9.2. スキーマ オブジェクト名11.1.6.1。CHAR および VARCHAR 型

于 2013-01-05T18:47:12.917 に答える
0

あなたの作成ステートメントは

CREATE TABLE `$tablename`(
qtno INT(10) NOT NULL AUTO_INCREMENT, 
qt VARCHAR(100),
PRIMARY KEY(qtno))

また、ユーザーごとに個別のテーブルを作成するのは悪い考えです.1000人以上のユーザーがいるとしましょう.1000以上のテーブルを作成しますか? 投稿のようなテーブルを作成しUserId, Post、ユーザーテーブルと投稿からユーザーIDを保存します

次のように Posts テーブルを作成できます

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'
于 2013-01-05T18:54:04.190 に答える