使用Mamp和MySQL(PHP)“无法连接”

时间:2014-03-11 02:12:34

标签: php database sqlite mamp

我正在尝试使用PHP访问我的MySQL数据库,但我的页面一直返回错误“无法连接”。这是我的代码:

echo '<ul>';

$db_host = "localhost";
$db_user = "user";

$db_link = mysqli_connect($db_host, $db_user, $db_password, $db_name)
or die ("Unable to connect");

$sqlQuery = "SELECT u.user_name, m.message_text, m.time_stamp FROM users AS u INNER JOIN messages m ON u.user_id = m.user_id";

$result = mysqli_query($db_link, $sqlQuery);


if($result)
{
 while ($row=mysqli_fetch_assoc($result)) 
  {
    echo "<li>" . $row['message_text'] . "<br>" . $row['user_name'] . "<br>" . $row['time_stamp'] . "</li>\n\t\t<hr>";
}
}
else
{
echo '<p>error displaying resultset</p>';
}

mysqli_close($db_link);
echo '</ul>';

2 个答案:

答案 0 :(得分:1)

<?php
$link = mysql_connect("localhost","root","") or die("Cannot connect to server");

$dbname="test";

mysql_select_db($dbname,$link) or die("Cannot connect to the database");

?>

答案 1 :(得分:0)

看起来您没有设置$db_password$db_name,后者肯定是连接数据库所必需的。假设您为数据库设置了密码,也应设置前者(您确实设置了密码,对吗?)验证您是否正确设置了这些变量,然后在$ db_link上执行var_dump(),如下所示: / p>

echo "<pre>";     //For formatting. 
var_dump($db_link);
echo "</pre>"

这将让您了解是否已正确设置数据库的连接对象。

<强>更新

SELECT
    u.user_name,
    m.message_text,
    m.time_stamp
FROM
    users AS u
INNER JOIN messages m ON u.user_id = m.user_id

这是您的查询,但具有正确的格式。注意最后一行,你有:

INNER JOIN messages m

那个流浪'm'不是必需的,为了调试我建议格式化这样的查询:

$sqlQuery = "SELECT `user`.user_name, `message`.`message_text`, `message`.time_stamp FROM users INNER JOIN messages ON `users`.user_id = `message`.user_id";

编辑:顺便说一下,你提到当你使用var_dump时,查询给你一个bool(false)。这告诉您查询失败并让您知道开始调试它。 (PHP.net)