Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php SQL一次创建多个表_Php_Mysql_Sql - Fatal编程技术网

Php SQL一次创建多个表

Php SQL一次创建多个表,php,mysql,sql,Php,Mysql,Sql,我需要一次创建多个表。我很难想出实现这一目标的正确方法。当前我的脚本如下所示: private function buildDB() { $sql = <<<MySQL_QUERY CREATE TABLE IF NOT EXISTS headings ( type VARCHAR(150), heading VARCHAR(100), uniqueid VARCHAR(100) ) CREATE TABLE IF NOT EXISTS

我需要一次创建多个表。我很难想出实现这一目标的正确方法。当前我的脚本如下所示:

  private function buildDB() {
    $sql = <<<MySQL_QUERY
CREATE TABLE IF NOT EXISTS headings (
type        VARCHAR(150),
heading     VARCHAR(100),
uniqueid    VARCHAR(100)
)

CREATE TABLE IF NOT EXISTS titles (
type        VARCHAR(150),
heading     VARCHAR(100),
uniqueid    VARCHAR(100)
)
MySQL_QUERY;

    return mysql_query($sql);
  }
私有函数buildDB(){

$sql=MySQL变得混乱,因为您没有对查询进行定界。请在第一条
CREATE
语句后添加分号:

private function buildDB() {
    $sql = <<<MySQL_QUERY
        CREATE TABLE IF NOT EXISTS headings (
        type        VARCHAR(150),
        heading     VARCHAR(100),
        uniqueid    VARCHAR(100)
        );

        CREATE TABLE IF NOT EXISTS titles (
        type        VARCHAR(150),
        heading     VARCHAR(100),
        uniqueid    VARCHAR(100)
        )
MySQL_QUERY;

    return mysql_query($sql);
}
您可以使用mysqli\u multi\u query()
(MySQL版本不存在),但是您必须使用mysqli。上面的代码返回两个查询的逻辑AND,因此如果一个查询失败,您仍然会返回一个
0

这是因为MySQL\u query()一次只能执行一个查询。请尝试改用mysqli::multi_query()(http://php.net/manual/en/mysqli.multi-query.php)但一定要以分号结束查询


但是,最简单的方法是直接在MySQL客户端中运行CREATE TABLE语句,只要正确分隔,您就可以发出多个查询。发出多个查询时,请更改以下内容:

CREATE TABLE IF NOT EXISTS headings (
type        VARCHAR(150),
heading     VARCHAR(100),
uniqueid    VARCHAR(100)
)

CREATE TABLE IF NOT EXISTS titles (
type        VARCHAR(150),
heading     VARCHAR(100),
uniqueid    VARCHAR(100)
)

你应该被安排好


如果没有,请在那里进行一些调试,看看您的SQL或周围的代码到底在哪里不满意。

欢迎这样做,并感谢您帮助其他程序员。请进行第一次投票:-)这似乎不起作用…我需要将MYSQL\u查询换成MYSQL\u多查询吗?我应该在哪里更改它们?就在底部,上面写着“ret”urn mysql_查询($sql)'?
CREATE TABLE IF NOT EXISTS headings (
type        VARCHAR(150),
heading     VARCHAR(100),
uniqueid    VARCHAR(100)
)

CREATE TABLE IF NOT EXISTS titles (
type        VARCHAR(150),
heading     VARCHAR(100),
uniqueid    VARCHAR(100)
)
CREATE TABLE IF NOT EXISTS headings (
type        VARCHAR(150),
heading     VARCHAR(100),
uniqueid    VARCHAR(100)
); // added a friendly semicolon

CREATE TABLE IF NOT EXISTS titles (
type        VARCHAR(150),
heading     VARCHAR(100),
uniqueid    VARCHAR(100)
); // added a friendly semicolon