Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.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,我试图用一个查询创建多个表,但它似乎不起作用。我正在使用PHP代码执行查询。下面是我的PHP代码、查询和错误 我的PHP代码: <?php $conn=mysql_connect("localhost","secret","secret") or die("Kan geen verbinding maken met de DB server"); mysql_select_db("secret",$conn) or die("Kan database niet selecteren");

我试图用一个查询创建多个表,但它似乎不起作用。我正在使用PHP代码执行查询。下面是我的PHP代码、查询和错误

我的PHP代码:

<?php
$conn=mysql_connect("localhost","secret","secret") or die("Kan geen verbinding maken met de DB server"); 
mysql_select_db("secret",$conn) or die("Kan database niet selecteren"); 

$query_file = 'tables.txt';

$fp    = fopen($query_file, 'r');
$sql = fread($fp, filesize($query_file));
fclose($fp); 

mysql_select_db('test_db');
$retval = mysql_query( $sql, $conn );
if(! $retval )
{
  die('Could not create table: ' . mysql_error());
}
mysql_close($conn);
?>
我的错误:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CREATE TABLE members( id INT NOT NULL AUTO_INCREMENT, username VARCHA' at line 10
有人知道我做错了什么吗?

你可能正在使用。文档明确说明不支持多个查询。由于每个create语句都是自己的查询,因此必须拆分查询字符串。

尝试以下操作:

$q1 = "CREATE TABLE pages(
    id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    pagid VARCHAR(32) NOT NULL,
    title  VARCHAR(32) NOT NULL,
    content  TEXT NOT NULL,
    image   VARCHAR(65) NOT NULL,
    youtube   VARCHAR(32) NOT NULL)";

 $q2 = "CREATE TABLE members(
    id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    username  VARCHAR(65) NOT NULL,
    password  VARCHAR(65) NOT NULL)";

 mysql_query($q1);
 mysql_query($q2);
如果您使用的是mysql\u查询,那么它一次只支持一个查询


但是,我建议您避免使用
mysql.*
功能,因为它的价值被低估了。请尝试
mysqli
PDO

如何创建它们?命令行?PHP脚本?PhpMyAdmin?如果它是一个PHP脚本,您是否在一个方法调用中执行所有的
CREATE
查询?我将添加我正在使用的PHP。可能存在问题。我如何才能执行这些多个查询?你能给我举个例子吗?
$q1 = "CREATE TABLE pages(
    id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    pagid VARCHAR(32) NOT NULL,
    title  VARCHAR(32) NOT NULL,
    content  TEXT NOT NULL,
    image   VARCHAR(65) NOT NULL,
    youtube   VARCHAR(32) NOT NULL)";

 $q2 = "CREATE TABLE members(
    id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    username  VARCHAR(65) NOT NULL,
    password  VARCHAR(65) NOT NULL)";

 mysql_query($q1);
 mysql_query($q2);