您好我尝试使用php
在mysql中创建一些临时表我的代码:
<?php
mysql_connect("localhost","root","sahan");//database connection
mysql_select_db("callcenter");
$maketemp="create table #temp1 (id varchar(50),date varchar(50),csc varchar(50),effectedareas varchar(50),agent varchar(50))";
$data1 = mysql_query($maketemp)
or die(mysql_error());
?>
但它会出现错误&#34;您的SQL语法中有错误;查看与您的MySQL服务器版本相对应的手册,以获得在&#39;&#39;附近使用的正确语法。在第1行&#34;
我的MySQL版本如下
MySQL Ver 14.12 Distrib 5.0.77,redhat-linux-gnu(i686)使用readline 5.1
我的PHP编码不太流利,请有人帮助我吗?
答案 0 :(得分:1)
我不知道你为什么要这样的表名,但你需要使用标识符引号(反引号)才能使用它。
`#temp1`
您需要报价,否则会被视为评论。 #
$maketemp = "CREATE TABLE `#temp1` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`date` varchar(50),
`csc` varchar(50),
`effectedareas` varchar(50),
`agent` varchar(50),
PRIMARY KEY (`id`)
) COLLATE = 'utf8_general_ci'
";
请不要使用mysql_*
个函数,不推荐使用它们。 Click here
答案 1 :(得分:0)
这里的问题是使用自动增量声明主数据密钥的varchar。所以将id数据类型设为int。然后它的工作
$maketemp = "CREATE TABLE `#temp1` (
`id` VARCHAR(50) NOT NULL AUTO_INCREMENT,
`date` varchar(50),
`csc` varchar(50),
`effectedareas` varchar(50),
`agent` varchar(50),
PRIMARY KEY (`id`)
) COLLATE = 'utf8_general_ci'
";
如果要创建临时表,在我的sql中,有临时表功能 http://www.mysqltutorial.org/mysql-temporary-table/
答案 2 :(得分:0)
取自MySQL Temporary Tables
MySQL版本3.23中添加了临时表。如果您使用的是比3.23更旧的MySQL版本,则不能使用临时表,但可以使用堆表。
您正在将SQLServer语法与MySQL语法混合在一起。虽然您可以在SQLServer中使用#table
创建一个临时表,或者在MySQL中使用##table
创建一个临时表,但您必须使用关键字TEMPORARY
CREATE TEMPORARY TABLE temp1 (
id varchar(50)
,date varchar(50)
,csc varchar(50)
,effectedareas varchar(50)
,agent varchar(50)
)