繁体   English   中英

如何通过从mysql / phpmyadmin导出为mydatabase.sql的php / pdo连接到sql数据库?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM