2015-09-12 61 views
2

查询工作,我有我的数据库SQL访问文件,我想在php通过下面的代码执行sql查询PHP中不起作用,但在phpMyAdmin

$query = file_get_contents('./sqlquery.txt'); 
print $query; 
$conn->query($query); 

运行它,但它返回此错误

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 IF NOT EXISTS `ads` (`id` int(11) NOT NULL AUTO_INCREMENT, `ur' at line 2 

我将打印输出复制到phpmyadmin中,一切正常,这里有什么问题?

我的SQL查询的这个

DROP TABLE IF EXISTS `ads`; 
CREATE TABLE IF NOT EXISTS `ads` (
    `id` int(11) NOT NULL AUTO_INCREMENT, 
    `url` varchar(300) NOT NULL, 
    `path` varchar(200) NOT NULL, 
    `width` int(11) NOT NULL, 
    `height` int(11) NOT NULL, 
    `priority` int(11) NOT NULL, 
    `adsalter` varchar(200) CHARACTER SET utf8 COLLATE utf8_persian_ci NOT NULL, 
    `adstitle` varchar(200) CHARACTER SET utf8 COLLATE utf8_persian_ci NOT NULL, 
    PRIMARY KEY (`id`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=12 ; 



DROP TABLE IF EXISTS `comment`; 
CREATE TABLE IF NOT EXISTS `comment` (
    `id` int(11) NOT NULL AUTO_INCREMENT, 
    `name` varchar(120) CHARACTER SET utf8 COLLATE utf8_persian_ci NOT NULL, 
    `comment` text CHARACTER SET utf8 COLLATE utf8_persian_ci NOT NULL, 
    `contentid` int(11) NOT NULL, 
    `parentid` int(11) NOT NULL DEFAULT '0', 
    `date` varchar(250) NOT NULL, 
    `haschild` int(1) NOT NULL DEFAULT '0', 
    `visible` int(1) NOT NULL DEFAULT '0', 
    PRIMARY KEY (`id`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=8 ; 



DROP TABLE IF EXISTS `files`; 
CREATE TABLE IF NOT EXISTS `files` (
    `id` int(11) NOT NULL AUTO_INCREMENT, 
    `name` varchar(200) NOT NULL, 
    `size` int(14) NOT NULL, 
    `type` varchar(50) NOT NULL, 
    `newsid` int(11) NOT NULL, 
    PRIMARY KEY (`id`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=11 ; 



DROP TABLE IF EXISTS `frgpss`; 
CREATE TABLE IF NOT EXISTS `frgpss` (
    `id` int(11) NOT NULL AUTO_INCREMENT, 
    `email` varchar(100) CHARACTER SET utf8 COLLATE utf8_persian_ci NOT NULL, 
    `ip` varchar(31) CHARACTER SET utf8 COLLATE utf8_polish_ci NOT NULL, 
    `token` varchar(27) CHARACTER SET utf8 COLLATE utf8_persian_ci NOT NULL, 
    `date` int(15) NOT NULL, 
    PRIMARY KEY (`id`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; 



DROP TABLE IF EXISTS `news`; 
CREATE TABLE IF NOT EXISTS `news` (
    `id` int(11) NOT NULL AUTO_INCREMENT, 
    `titrimage` varchar(100) NOT NULL, 
    `titr` varchar(100) CHARACTER SET utf8 COLLATE utf8_persian_ci NOT NULL, 
    `titralter` varchar(160) CHARACTER SET utf8 COLLATE utf8_persian_ci NOT NULL, 
    `newsshurt` varchar(200) CHARACTER SET utf8 COLLATE utf8_persian_ci NOT NULL, 
    `text` text CHARACTER SET utf8 COLLATE utf8_persian_ci NOT NULL, 
    `keywords` text CHARACTER SET utf8 COLLATE utf8_persian_ci NOT NULL, 
    `description` text CHARACTER SET utf8 COLLATE utf8_persian_ci NOT NULL, 
    `author` varchar(200) CHARACTER SET utf8 COLLATE utf8_persian_ci NOT NULL, 
    `branch` int(11) NOT NULL, 
    `date` varchar(160) CHARACTER SET utf8 COLLATE utf8_persian_ci NOT NULL, 
    `visible` int(1) NOT NULL DEFAULT '0', 
    `visited` int(11) NOT NULL DEFAULT '0', 
    `titrtitle` varchar(200) CHARACTER SET utf8 COLLATE utf8_persian_ci NOT NULL, 
    PRIMARY KEY (`id`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=11 ; 


DROP TABLE IF EXISTS `signup`; 
CREATE TABLE IF NOT EXISTS `signup` (
    `id` int(11) NOT NULL AUTO_INCREMENT, 
    `name` varchar(50) NOT NULL, 
    `family` varchar(50) NOT NULL, 
    `email` varchar(80) NOT NULL, 
    `gender` varchar(50) NOT NULL, 
    `username` varchar(80) NOT NULL, 
    `picture` varchar(80) NOT NULL, 
    `password` varchar(60) NOT NULL, 
    PRIMARY KEY (`id`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; 


DROP TABLE IF EXISTS `users`; 
CREATE TABLE IF NOT EXISTS `users` (
    `id` int(11) NOT NULL AUTO_INCREMENT, 
    `name` varchar(60) NOT NULL, 
    `lastname` varchar(60) NOT NULL, 
    `email` varchar(100) NOT NULL, 
    `password` varchar(40) NOT NULL, 
    `userregistereddate` varchar(60) NOT NULL, 
    `key` varchar(60) NOT NULL, 
    `type` varchar(20) NOT NULL, 
    `userphoto` varchar(50) NOT NULL, 
    `usergroup` varchar(300) NOT NULL, 
    `ipaddress` text NOT NULL, 
    `telnumber` varchar(14) NOT NULL, 
    PRIMARY KEY (`id`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ; 
+4

发布您的MySQL查询? –

+2

请显示您的文件的内容。 – Alfabravo

+0

您是否尝试过直接在php页面中运行代码,而不是从文本文件中调用它? – Kuya

回答

1
你在这里执行多个查询

,它不会简单地工作,我敢肯定,在query功能($conn->query($query);)你使用mysql_query()mysqli_query(),但您需要做的是使用mysqli_multi_query()代替。必须在docx

$con = mysqli_connect($host, $user, $pass, $db) OR die(mysqli_error($con)); 
$query = file_get_contents('./sqlquery.txt'); 
mysqli_multi_query($con, $query); 
mysqli_close($con); 

希望看看这里,这将帮助你

注意:假设而在PHPMyAdmin执行的所有查询都工作正常。

相关问题