创建表时出错

时间:2014-06-04 07:31:20

标签: php mysql create-table

在我的php程序中,我想检查表是否存在。如果表不存在则要创建表...

我已经尝试过的代码

<?php
if( isset($_POST['uniqueno']))
{
            $uniqueno=$_POST['uniqueno'];
            $user=$_SESSION['userid'];
            $date=date('Y-m-d H:i:s');
            if(mysql_num_rows(mysql_query("SHOW TABLES LIKE '".$user."'"))==1)
            { echo "table exists"; }
            else
            {
                $create=mysql_query("create table '$user'(  uniqueno varchar(10) NOT NULL,
                                                            elementno varchar(30),
                                                            name varchar(50),
                                                            process varchar(30),
                                                            date datetime(30), 
                                                            PRIMARY KEY (uniqueno) 
                                                          )");
                if(!$create)
                {
                    echo mysql_error();
                }                       
            }
}
?>

当我尝试此代码时显示以下错误:

“您的SQL语法有错误;请查看与您的MySQL服务器版本对应的手册,以便在''sai'附近使用正确的语法(uniqueno varchar(10)NOT NULL,elementno varchar(30),'在第1行“。

谢谢..

4 个答案:

答案 0 :(得分:2)

取出表名的单引号,查询应为

"create table $user(  uniqueno varchar(10) NOT NULL,
                      elementno varchar(30),
                      name varchar(50),
                      process varchar(30),
                      date datetime, 
                      PRIMARY KEY (uniqueno) 
                    )"

答案 1 :(得分:0)

试试这个

$create=mysql_query("create table $user (  uniqueno varchar(10) NOT NULL,
                                           elementno varchar(30),
                                           name varchar(50),
                                           process varchar(30),
                                           date datetime(30), 
                                           PRIMARY KEY (uniqueno) 
                                        )");

答案 2 :(得分:0)

应该是

$create=mysql_query("create table $user (  uniqueno varchar(10) NOT NULL,
                                                        elementno varchar(30),
                                                        name varchar(50),
                                                        process varchar(30),
                                                        date datetime, 
                                                        PRIMARY KEY (uniqueno) 
                                                      )");
  • 不需要围绕$ user的单引号。
  • 日期时间字段不需要字段长度。

答案 3 :(得分:0)

<?php
session_start();
//your db connection code here
if( isset($_POST['uniqueno']))
{
            $uniqueno=$_POST['uniqueno'];
            $userid=$_POST['userid'];
            $user=$_SESSION[$userid];
            $date=date('Y-m-d H:i:s');
            if(mysql_num_rows(mysql_query("SHOW TABLES LIKE '".$user."'"))==1)
            { echo "table exists"; }
            else
            {
                $create=mysql_query("create table ".$user."(`uniqueno` varchar(10) NOT NULL,`elementno` varchar(30),`name` varchar(50),`process` varchar(30),`date` datetime, PRIMARY KEY(`uniqueno`))");
                if(!$create)
                {
                    echo mysql_error();
                }                       
            }
}
?>