2015-09-12 95 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執行的所有查詢都工作正常。

相關問題