我正在尝试使用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>';
答案 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)