gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 19:19:00 29 4
gpt4 key购买 nike

我在许多不同的网站上进行了搜索,但找不到专门回答此问题的答案:

我安装了 WAMP 服务器,它安装了 phpmyadmin 以及 MySQL。我可以使用 localhost 作为主机名,通过 php/pdo 轻松连接到数据库。

但我的问题是我正在尝试连接到我从 phpmyadmin 导出为“mydatabase.sql”的数据库。现在假设我将此文件放在我的电脑上的“C:\Users\Username\Desktop\MyFolder\mydatabase.sql”中。我将如何连接到该数据库(如果可能的话)?

原因是我无法在所有使用该程序的电脑上安装 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 连接到该数据库。

关于php - 如何通过已从 mysql/phpmyadmin 导出为 mydatabase.sql 的 php/pdo 连接到 sql 数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42530225/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com