即使已连接

时间:2017-07-15 05:14:32

标签: php mysql database mysqli phpmyadmin

刚刚安装了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";
}
?>

当我运行它时,我会得到&#34; good&#34;,所以我知道我正在连接,然后&#34;没有连接&#34;,所以它&&#34; #39;没有连接到我的数据库。

我还尝试添加此代码,即使我创建了多个数据库,也没有任何内容得到回应。

$res = mysqli_query("SHOW DATABASES");

while ($row = mysqli_fetch_assoc($res)) {
    echo $row['Database'] . "\n";
}

任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:2)

检查连接状态时出错。

您使用:

OleDbCommand oconn = new OleDbCommand("Select * From [Sheet1$] WHERE Date = @date");
oconn.Connection = connection;
try
{
    oconn.Parameters.AddWithValue("@date", DateTime.Now.ToString("MM/dd/yyyy"));
    connection.Open();
    OleDbDataAdapter sda = new OleDbDataAdapter(oconn);
    DataTable data = new DataTable();
    sda.Fill(data);
    connection.Close();
}
catch (Exception)
{

}

应该使用:

if ($link) {
    echo "good";
}

根据PHP documentationif ($link->connect_error) { die('Connect Error (' . $mysqli->connect_errno . ') ' . $mysqli->connect_error); } 将始终返回一个对象,因此它永远不会是mysqli_connect()

您还在数据库选择中反转了参数false$db,并在考虑之前的代码时使用了不正确的函数。它应该是

$link

而不是:

$mysqli->select_db($db)

实际上是正确的顺序:

$db_selected = mysqli_select_db($db, $link);

有关正确使用的详细信息,请阅读$db_selected = mysqli_select_db($link, $db); PHP documentation