Dha*_*wal 1 php mysql mysqli pdo phpmyadmin
我正在使用 PDO 连接到 mySql 数据库。尽管我可以连接到已创建的数据库(默认情况下已创建),但我无法连接到我创建的任何数据库。我正在使用 wamp 服务器。
<?php
try{
$dbh=new PDO("mysql:host=localhost;dbname=mydata","root","");
}catch(Exception $e){
die("ERROR: Couldn't connect. {$e->getMessage()}");
}
?>
Run Code Online (Sandbox Code Playgroud)
如果我用先前在 wamp 服务器中创建的数据库 mysql 替换 mydata,那么代码可以完美运行。唯一的问题是我创建的数据库。我尝试赋予 mydata 与 mysql 数据库相同的权限,但它不起作用。
要么是
例如,如果您的 PC 上安装了多个数据库服务器,则可能会发生后者。
要获得证明,请在 phpmyadmin 中运行以下查询:
show databases;
Run Code Online (Sandbox Code Playgroud)
然后使用 PDO 在 PHP 中运行相同的查询:
$host = 'your db host';
$user = 'your db username';
$pass = 'your db password';
$pdo = new PDO("mysql:host=$host", $user, $pass, [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]);
$databases = $pdo->query('show databases')->fetchAll(PDO::FETCH_COLUMN);
var_dump($databases);
Run Code Online (Sandbox Code Playgroud)
或 mysqli
$host = 'your db host';
$user = 'your db username';
$pass = 'your db password';
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = mysqli_connect($host, $user, $pass);
$databases = $mysqli->query('show databases')->fetch_all();
var_dump($databases);
Run Code Online (Sandbox Code Playgroud)
并比较输出。它会显示要么存在拼写错误,要么 PHPMyAdmin 和 PHP 确实连接到不同的数据库服务器。
然后您可以检查 PHPmyAdmin 中的配置文件以确保它连接到正确的服务器
| 归档时间: |
|
| 查看次数: |
3166 次 |
| 最近记录: |