我有一个我编写的PHP脚本,其中一个页面连接并执行完美,但另一个给了我以下错误。我在MAMP安装上使用PHP 5.3.6:
Access denied for user ''@'localhost' to database 'premind'
这是抛出错误的页面:
<html>
<head><title>User CP</title></head>
<body>
<form name="logoutbutton" method="post" action="logout.php">
<input type="submit" name="logout" value="Log out" />
</form>
<h1>User Control Panel</h1>
<h2>Below is a list of current assignments:</h2>
<?php
include('/Applications/MAMP/htdocs/premind/includes/vars.php');
session_start();
if (isset($_SESSION['emailaddress'])) {
mysql_select_db($db_name) or die(mysql_error());
$sql4 = 'SELECT `aname`, `date`, `useremail`, `aid` FROM `data`';
$result4 = mysql_query($sql4) or die("<br />" . mysql_error());
$countrows2 = mysql_num_rows($result4);
if (!$result4) {
echo "Cannot show assignments!";
}
while ($row = mysql_fetch_array($result4)) {
if ($row['useremail'] == $_SESSION['emailaddress']) {
echo $row['aid'].". ".$row['aname']." -- ".$row['date']."<br />";
echo "<br />";
}
elseif ($countrows2 == 0) {
echo "<h1>No assignments found!</h1>";
}
}
if ($countrows2 == 0) {
echo "<h1>No assignments found!</h1>";
}
}
else {
header('Location: notloggedin.php');
}
?>
<br />
<br />
<h2>Submit an assignment:</h2>
<form name="submitass" method="post" action="submitassignment.php">
<table>
<tr>
<td><p>Assignment name:</td><td></p><input name="aname" type="text" id="aname" /></td>
</tr>
</table>
<table>
<tr>
<td><p>Due date: (IN YEAR, MONTH, DAY FORMAT)</p></td><td><input name="date" type="text" id="date" /></td>
</tr>
</table>
<br />
<h2>Example of date: 2012-01-05</h2>
<br />
<input type="submit" name="submitass" value="Submit!" />
</form>
<br />
<br />
<h2>Delete and assignment:</h2>
<p>To delete an assignment, enter the number that you see before the assignment name above.</p>
<form name="deleteass" method="get" action="deleteassignment.php">
<p>Assignment ID: </p><input type="text" name="assid" id="assid" />
<input type="submit" name="deleteass" value="Delete!" />
</form>
</body>
</html>
这是vars.php文件:
<?php
$host="localhost"; // Host name
$username="root"; // Mysql username
$password="root"; // Mysql password
$db_name="premind"; // Database name
$tbl_name="members"; // Table name
?>
答案 0 :(得分:1)
您缺少mysql_connect()调用。
您说是在另一个重定向到此页面的文件中调用它,但即使它已在上一页中连接,也未在此页面中连接。因此,您必须在此页面上单独调用mysql_connect,或者包含执行调用的文件。
答案 1 :(得分:1)
连接时没有设置数据库用户,数据库配置和连接数据库的方式有问题。
在调用mysql_connect()
时,请确保您的数据库凭据已准备就绪并已包含在内。
修改:您的代码中根本没有调用mysql_connect()
。
答案 2 :(得分:0)
我认为您运行的问题与您对vars.php的路径有关,假设(基于注释)您的vars.php文件具有连接信息。尝试使用相对路径(例如../vars.php /这只是一个示例)而不是系统路径。可能(可能)该站点无法访问系统路径。
编辑
我注意到你发布了vars.php文件。现在我们可以肯定地说代码中没有调用mysql_connect。在任一文件中尝试添加:
mysql_connect($host,$username,$password);