[英]How to connect to sql database through php/pdo that has been exported from mysql/phpmyadmin as mydatabase.sql?
我在许多不同的站点上进行了搜索,但是找不到专门回答此问题的答案:
我安装了WAMP Server,其中安装了phpmyadmin和MySQL。 我可以使用localhost作为我的主机名,通过php / pdo轻松连接到数据库。
但是我的问题是我试图连接到从phpmyadmin导出为“ mydatabase.sql”的数据库。 因此,现在让我将这个文件放在我的计算机上的“ C:\\ Users \\ Username \\ Desktop \\ MyFolder \\ mydatabase.sql”中。 我将如何连接到该数据库(如果可能的话)?
原因是我无法在将使用该程序的所有PC上安装WAMP Server。 因此希望能够连接到数据库而无需安装任何类型的服务器等。
目前我的php是:
<?php
$dsn='mysql:C:\Users\Username\Desktop\MyFolder\mydatabase.sql';
$username='username';
$password='pass';
try
{
$dbh = new PDO("$dsn",$username,$password);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo 'Connected to Database<br/>';
$sql = "SELECT * FROM users";
foreach ($dbh->query($sql) as $row)
{
echo $row["ID"] ." - ". $row["Name"] ."<br/>";
}
$dbh = null;
}
catch(PDOException $e)
{
echo $e->getMessage();
}
?>
另外,如果可能的话,连接“非服务器数据库”是否需要用户名和密码?
如果我尝试:
$dsn='sqlite:C:\Users\Optique\Desktop\optique.sql';
我得到:“已连接到数据库SQLSTATE [HY000]:常规错误:26个文件已加密或不是数据库”
但是我认为这是因为SQLite使用的数据库格式不同于MySQL(需要更正)。 因此,我需要的是类似于MySQL的SQLite驱动程序。
提前致谢!
您不能仅仅因为不存在而找到答案: 不可能通过PDO连接到SQL转储,而且也没有任何意义:转储不是数据库,而只是INSERT查询的集合。 与sqlite不同,对于mysql,您需要连接服务器。
为了能够连接,您应该先将该转储导入mysql数据库,然后使用PDO连接到该数据库。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.