Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.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 mysqli multi-query不执行查询_Php_Mysql - Fatal编程技术网

Php mysqli multi-query不执行查询

Php mysqli multi-query不执行查询,php,mysql,Php,Mysql,我试图执行3个查询以在数据库中创建表,但它不会执行查询,从而导致语法错误。有谁能看看这段代码,告诉我是什么让我打错了?我已经尝试了一切,但我无法执行查询 $dh = mysqli_connect($_POST['hostname'], $_POST['username'], $_POST['password'], $_POST['database']); if(! $dh ) { die('Could not connect: ' . mysql_error()); }

我试图执行3个查询以在数据库中创建表,但它不会执行查询,从而导致语法错误。有谁能看看这段代码,告诉我是什么让我打错了?我已经尝试了一切,但我无法执行查询

$dh = mysqli_connect($_POST['hostname'], $_POST['username'], $_POST['password'],           $_POST['database']);
if(! $dh )
{
  die('Could not connect: ' . mysql_error());
}
echo "Connected successfully...<br /><br />";

$query = "CREATE TABLE IF NOT EXISTS `content` (
               `content_id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
               `section_id` INT(11) NOT NULL,
               `header` VARCHAR(255) NOT NULL,
               `sub_header` VARCHAR(255) NOT NULL,
               `date_range` VARCHAR(64) NOT NULL,
               `content_body` TEXT NOT NULL
              ) ENGINE=InnoDB DEFAULT CHARSET=latin1";

$query .= "CREATE TABLE IF NOT EXISTS `sections` (
               `section_id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
               `title` VARCHAR(255) NOT NULL,
               `position` INT(11) NOT NULL
              ) ENGINE=InnoDB DEFAULT CHARSET=latin1";

$query .= "CREATE TABLE IF NOT EXISTS `sections` (
               `user_id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
               `username` VARCHAR(32) NOT NULL,
               `password` VARCHAR(32) NOT NULL,
               `first_name` VARCHAR(32) NOT NULL,
               `last_name` VARCHAR(32) NOT NULL,
               `email` VARCHAR(1024) NOT NULL
              ) ENGINE=InnoDB DEFAULT CHARSET=latin1";

$retval = mysqli_multi_query($dh, $query);
$dh=mysqli\u connect($\u POST['hostname'],$\u POST['username'],$\u POST['password'],$\u POST['database']);
如果(!$dh)
{
die('无法连接:'.mysql_error());
}
echo“已成功连接…

”; $query=“如果不存在,则创建表`content`”( `content_id`INT(11)非空自动增量主键, `第_id`INT(11)节不为空, `标头'VARCHAR(255)不为空, `sub_头`VARCHAR(255)不为空, `日期范围'VARCHAR(64)不为空, `content_body`文本不为空 )引擎=InnoDB默认字符集=1”; $query.=“如果不存在,则创建表`节`( `节id`INT(11)非空自动增量主键, `title`VARCHAR(255)不为空, `位置'INT(11)不为空 )引擎=InnoDB默认字符集=1”; $query.=“如果不存在,则创建表`节`( `用户id`INT(11)非空自动增量主键, `用户名`VARCHAR(32)不为空, `密码'VARCHAR(32)不为空, `first_name`VARCHAR(32)不为空, `姓氏'VARCHAR(32)不为空, `电子邮件`VARCHAR(1024)不为空 )引擎=InnoDB默认字符集=1”; $retval=mysqli_多_查询($dh,$query);
查询之间没有分号,而是将它们连接在一起并立即运行

如果要运行多个这样的查询,则需要在每个查询的末尾加上分号

$query = "CREATE TABLE IF NOT EXISTS `content` (
               `content_id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
               `section_id` INT(11) NOT NULL,
               `header` VARCHAR(255) NOT NULL,
               `sub_header` VARCHAR(255) NOT NULL,
               `date_range` VARCHAR(64) NOT NULL,
               `content_body` TEXT NOT NULL
              ) ENGINE=InnoDB DEFAULT CHARSET=latin1;";

$query .= "CREATE TABLE IF NOT EXISTS `sections` (
               `section_id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
               `title` VARCHAR(255) NOT NULL,
               `position` INT(11) NOT NULL
              ) ENGINE=InnoDB DEFAULT CHARSET=latin1;";

$query .= "CREATE TABLE IF NOT EXISTS `sections` (
               `user_id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
               `username` VARCHAR(32) NOT NULL,
               `password` VARCHAR(32) NOT NULL,
               `first_name` VARCHAR(32) NOT NULL,
               `last_name` VARCHAR(32) NOT NULL,
               `email` VARCHAR(1024) NOT NULL
              ) ENGINE=InnoDB DEFAULT CHARSET=latin1;";

查询之间缺少分号


所以您正在尝试执行这样的操作:
ENGINE=InnoDB DEFAULT CHARSET=latin1CREATE TABLE

我按照您所说的做了,它有点奏效。现在它加载前两个查询,但不加载第三个查询。我的代码看起来和你的一样,但我没有。它只显示前两个查询,而不是第三个查询。我找不到第三个表了,我刚才注意到了,您对第二个表和第三个表的调用相同,
部分
。所以第三个不会运行。哇,我甚至没有注意到lol。有时复制粘贴的缺点