在单个查询中创建和插入

时间:2013-08-06 16:30:10

标签: php mysql sql create-table

    <?php     
mysql_query("CREATE TABLE IF NOT EXISTS test.$p (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `title` varchar(255) NOT NULL DEFAULT '',
      `colum` varchar(255) NOT NULL DEFAULT '',
      `ord` varchar(255) NOT NULL DEFAULT '',
      `tex` varchar(255) NOT NULL DEFAULT '',
      `search` varchar(255) NOT NULL DEFAULT '',
      `count` varchar(255) NOT NULL DEFAULT '',
      `order` varchar(255) NOT NULL DEFAULT '',
      PRIMARY KEY (`id`)
    )ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1; 
     INSERT INTO $p ( `title`, `colum`, `ord`, `tex`, `search`, `count`, `order`) VALUES
    ('$a',  '$b',  '$c',  '$d',  '$f',  '$h',  '$g'); ");
        ?>

我使用的是PHP语言。 $ r是我的数据库,$ p是我的表名
在这里我创建一个表,如果没有创建表,如果创建表,那么我想在上面给出的相应列中插入值,但我不擅长mysql_query所以我不知道在哪里添加插入查询

我找到了解决我问题的方法,但是这段代码在phpmyadmin中运行正常,但是当我使用php运行此代码时,它在数据库中没有显示任何内容

2 个答案:

答案 0 :(得分:1)

您无法使用单个mysql_query()执行两个查询。

使用mysql_query()查询作为参数再次拨打INSERT

如果绝对必须在单个函数调用中执行多个查询,请将mysql engne更改为mysqli,然后使用mysqli_multi_query(),如下所示:

mysqli_multi_query ($link, 'query1;query2;query3;...');

请记住,尽管两种方法都是按顺序发出查询,但它们的执行并非原子性的。如果您需要原子性,请使用TRANSACTION

答案 1 :(得分:0)

13.1.17. CREATE TABLE Syntax可以执行以下操作:

CREATE TABLE IF NOT EXISTS `table1` (
    `col1` INT (11) DEFAULT NULL,
    `col2` INT (11) DEFAULT NULL
)
SELECT 1 `col1`, 2 `col2`;

并且应该与mysql_query

一起使用