词条信息

admin
超级管理员
版本创建者 发短消息   
简易百科旧版 >> php怎么执行.sql文件 >> 历史版本

最新历史版本 :php怎么执行.sql文件 返回词条



<?php

$hostname = 'localhost';

$dbname = 'test';

$username = 'root';

$pw = 'vivian';

$sqlfile = 'gb.sql';

$sql = file_get_contents($sqlfile);

echo($dbname);

echo($sql);

$conn = mysql_connect($hostname,$username,$pw) or die("无法连接数据库");

mysql_select_db($dbname,$conn) or die("无法连接到数据库");

mysql_query($sql) or die(mysql_error());

?>

复制内容到剪贴板

代码:



-- -----------------------------------------------------------

--

-- Guest Book SQL File for installation 

-- $id : gb.sql  1  2008-7-16    iwege  $

--

-- -----------------------------------------------------------

DROP TABLE IF EXISTS gb_comments;

CREATE TABLE gb_comments(

    cid mediumint(8) NOT NULL AUTO_INCREMENT,

    username char(15) NOT NULL DEFAULT 'zero',

    email char(40),

    website varchar(75),

    passdate datetime NOT NULL,

    title varchar(75) NOT NULL,

    message text NOT NULL,

    PRIMARY KEY (cid)

)TYPE=MyISAM DEFAULT CHARSET=gbk;

sql直接在数据库执行的时候是没有问题的,但是如果是使用php文件执行的话,需要去掉第一行的drop 语句。 

sql执行的时候test数据库是空的,并没有gb_comments.


请问这个问题是怎么形成的啊?


解决

mysql_query 只能执行一段查询,查询的字串当中不能带分号。

如果要执行多个语句,需要将语句分开。