我正在尝试连接数据库" customers.sql"使用PDO。这是代码:
<?php
$servername = "localhost";
$username = "root";
$password = "";
try {
$conn = new PDO("mysql:host=$servername;dbname=customers.sql", $username, $password);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Connected successfully";
}
catch(PDOException $e) {
echo "Connection failed: " . $e->getMessage();
}
?>
这是我的文件夹结构:
-WebPage
-index.php
-customers.sql << this is the database >>
我正在运行WAMP服务器。服务器名称为&#34; localhost&#34;,用户名为&#34; root&#34;并且没有密码,即密码是&#34;&#34;。服务器返回:
连接失败:SQLSTATE [HY000] [1049]未知数据库&#39; customers.sql&#39;。
有人请指出我的错误。提前谢谢。
修改
以下是&#34; customers.sql&#34;中的代码:
SET IDENTITY_INSERT Customer ON
INSERT INTO [Customer] ([Id],[FirstName],[LastName],[City],[Country],[Phone])VALUES(1,'Maria','Anders','Berlin','Germany','030-0074321')
INSERT INTO [Customer] ([Id],[FirstName],[LastName],[City],[Country],[Phone])VALUES(2,'Ana','Trujillo','México D.F.','Mexico','(5) 555-4729')
INSERT INTO [Customer] ([Id],[FirstName],[LastName],[City],[Country],[Phone])VALUES(3,'Antonio','Moreno','México D.F.','Mexico','(5) 555-3932')
INSERT INTO [Customer] ([Id],[FirstName],[LastName],[City],[Country],[Phone])VALUES(4,'Thomas','Hardy','London','UK','(171) 555-7788')
INSERT INTO [Customer] ([Id],[FirstName],[LastName],[City],[Country],[Phone])VALUES(5,'Christina','Berglund','Luleå','Sweden','0921-12 34 65')
INSERT INTO [Customer] ([Id],[FirstName],[LastName],[City],[Country],[Phone])VALUES(6,'Hanna','Moos','Mannheim','Germany','0621-08460')
INSERT INTO [Customer] ([Id],[FirstName],[LastName],[City],[Country],[Phone])VALUES(7,'Frédérique','Citeaux','Strasbourg','France','88.60.15.31')
INSERT INTO [Customer] ([Id],[FirstName],[LastName],[City],[Country],[Phone])VALUES(8,'Martín','Sommer','Madrid','Spain','(91) 555 22 82')
INSERT INTO [Customer] ([Id],[FirstName],[LastName],[City],[Country],[Phone])VALUES(9,'Laurence','Lebihan','Marseille','France','91.24.45.40')
INSERT INTO [Customer] ([Id],[FirstName],[LastName],[City],[Country],[Phone])VALUES(10,'Elizabeth','Lincoln','Tsawassen','Canada','(604) 555-4729')
INSERT INTO [Customer] ([Id],[FirstName],[LastName],[City],[Country],[Phone])VALUES(11,'Victoria','Ashworth','London','UK','(171) 555-1212')
INSERT INTO [Customer] ([Id],[FirstName],[LastName],[City],[Country],[Phone])VALUES(12,'Patricio','Simpson','Buenos Aires','Argentina','(1) 135-5555')
...
答案 0 :(得分:2)
有一些混乱。
你说你正在使用wamp,你的代码表明你正在尝试连接到mysql数据库。
.sql文件不是数据库。它只包含sql语句。它可能包含创建和填充数据库所需的所有语句。但当然,这只是在我们知道文件内容之前的猜测。
如果你已经安装了wamp,那么你就有了一个正在运行的mysql服务器。您必须对服务器执行.sql文件才能创建数据库。最简单的方法是使用phpmyadmin,它也带有wamp。您应该可以在http://localhost/phpmyadmin访问它。
我希望这会有所帮助。当然,在你完全理解这一切之前,你必须阅读一些关于mysql服务器的文章。玩得开心学习。
答案 1 :(得分:1)
如果您的数据库名为“customers”,请删除.sql。
否则您是否尝试使用名为customers.sql的文件?那是不可能做到的。该声明用于建立与数据库的连接。
答案 2 :(得分:1)
这真的是一个文件系统文件吗?如果是,您确定格式不是sqlite
而不是mysql
吗?
如何使用
打开数据库文件$conn = new PDO('sqlite:customers.sqlite');
答案 3 :(得分:1)
customers.sql不是表,因此您不需要.sql。我通常用这个:
$conn = new mysqli($servername, $username, $password);
$conn->query('use customers');