我试图使用PHP在mysql中创建一些临时表

时间:2014-09-23 05:31:23

标签: php mysql sql

您好我尝试使用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编码不太流利,请有人帮助我吗?

3 个答案:

答案 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)
         )