Php 创建表时出错
在我的php程序中,我想检查表是否存在。如果表不存在,则要创建表 我试过的代码Php 创建表时出错,php,mysql,create-table,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
<?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();
}
}
}
?>
去掉表名的单引号,查询应该是
"create table $user( uniqueno varchar(10) NOT NULL,
elementno varchar(30),
name varchar(50),
process varchar(30),
date datetime,
PRIMARY KEY (uniqueno)
)"
试试这个
$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)
)");
应该是
$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左右的单引号
- datetime字段不需要字段长度
使用此查询时,另一个错误消息显示:您的SQL语法有错误;请查看与MySQL服务器版本对应的手册,以了解第5行的near'(30),PRIMARY KEY(uniqueno))'的正确语法抱歉,我没有注意到还有一个问题,datetime不需要长度,因此我更新了答案,现在应该可以用了。
<?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();
}
}
}
?>