这里超级糊涂。我已经建立了一个网站,允许我使用 php 连接到 mysql。正如您在下面看到的,我需要 common.php,并且与数据库的连接、执行等没有问题。当我在我正在开发的新页面上使用完全相同的代码时,不起作用的是。我可以使用测试用户登录该站点,但该页面不会运行任何 SQL 查询来从我的数据库中提取信息。我得到的错误是:
“用户 'ec2-user@localhost' 的访问被拒绝(使用密码:否)”
我不明白为什么它试图以 ec2-user 身份连接,而这显然不是我要求代码连接的原因。
任何帮助,将不胜感激。几天来我一直在尝试解决这个问题,即使搜索 Google 神父,我也找不到合适的答案。
谢谢!
Common.php 代码
// At the top of the page we check to see whether the user is logged in or not
if(empty($_SESSION['user']))
{
// If they are not, we redirect them to the login page.
header("Location: index.php");
// Remember that this die statement is absolutely critical. Without it,
// people can view your members-only content without logging in.
die("Redirecting to index.php");
}
common.php 的代码如下
<?php
// These variables define the connection information for your MySQL database
$username = "username";
$password = "password";
$host = "myhostnotyours";
$dbname = "thedatabase";
$options = array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8');
try
{
$db = new PDO("mysql:host={$host};dbname={$dbname};charset=utf8", $username, $password, $options);
}
catch(PDOException $ex)
{
die("Failed to connect to the database: " . $ex->getMessage());
}
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$db->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
if(function_exists('get_magic_quotes_gpc') && get_magic_quotes_gpc())
{
function undo_magic_quotes_gpc(&$array)
{
foreach($array as &$value)
{
if(is_array($value))
{
undo_magic_quotes_gpc($value);
}
else
{
$value = stripslashes($value);
}
}
}
undo_magic_quotes_gpc($_POST);
undo_magic_quotes_gpc($_GET);
undo_magic_quotes_gpc($_COOKIE);
}
header('Content-Type: text/html; charset=utf-8');
session_start();