Php 创建多个表时发生SQL错误
我试图用一个查询创建多个表,但它似乎不起作用。我正在使用PHP代码执行查询。下面是我的PHP代码、查询和错误 我的PHP代码: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
$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);