PHP即使连接也无法选择数据库
Posted
技术标签:
【中文标题】PHP即使连接也无法选择数据库【英文标题】:PHP cannot select database even though connected 【发布时间】:2017-12-20 06:01:19 【问题描述】:刚刚安装了 MAMP,正在学习 php 并连接到我的数据库。我似乎可以连接到 mysql 但无法连接或在 phpMyAdmin 中查看任何数据库。
这是我的 php 代码:
<?php
$user = 'root';
$password = 'root';
$db = 'test';
$host = 'localhost';
$link = mysqli_connect($host, $user, $password);
//newly editied
if ($link->connect_error)
die('Connect Error (' . $mysqli->connect_errno . ') '
. $mysqli->connect_error);
$db_selected = mysqli_select_db($db, $link);
if (!$db_selected)
echo "did not connect";
?>
当我运行它时,我会得到“好”字样,所以我知道我正在连接,然后是“未连接”,所以它没有连接到我的数据库。
我也尝试添加此代码,即使我创建了多个数据库,也没有任何响应。
$res = mysqli_query("SHOW DATABASES");
while ($row = mysqli_fetch_assoc($res))
echo $row['Database'] . "\n";
感谢任何帮助!
【问题讨论】:
【参考方案1】:检查连接状态时你错了。
你使用:
if ($link)
echo "good";
并且应该使用:
if ($link->connect_error)
die('Connect Error (' . $mysqli->connect_errno . ') '
. $mysqli->connect_error);
根据PHP documentation,mysqli_connect()
将始终返回一个对象,因此它永远不会是false
。
您还在 DB 选择上反转了参数 $db
和 $link
,并考虑到您之前的代码使用了不正确的函数。应该是
$mysqli->select_db($db)
而不是:
$db_selected = mysqli_select_db($db, $link);
事实上,顺序正确的是:
$db_selected = mysqli_select_db($link, $db);
阅读mysqli_select_db()
PHP documentation,了解有关正确使用的更多详细信息。
【讨论】:
刚刚更改了我的代码,谢谢。但是连接mysqli似乎没有错误...我仍然无法连接到任何数据库。或者显示其中任何一个,就此而言。有什么想法吗?以上是关于PHP即使连接也无法选择数据库的主要内容,如果未能解决你的问题,请参考以下文章
Rails 5 API - 即使无法建立与数据库的连接,也加载静态页面
即使明确设置 PreparedStatement 也不会超时