【发布时间】:2015-12-10 00:16:39
【问题描述】:
我正在尝试为我的网站创建一些 php 页面。基本上,我想查询与我的网站连接的数据库的表,并能够从该表中存储/检索信息。
我已经购买了托管服务,据我所知,我已经在 phpMyAdmin 上正确设置了一个数据库。我还设置了访问用户名和密码(如数据库名称、服务器、用户名、密码)。
但是,我使用以下函数从我的表中查询。
function query(/* $sql [, ... ] */)
{
// SQL statement
$sql = func_get_arg(0);
// parameters, if any
$parameters = array_slice(func_get_args(), 1);
// try to connect to database
static $handle;
if (!isset($handle))
{
try
{
// connect to database
$handle = new PDO("mysql:dbname=" . DATABASE . ";host=" . SERVER, USERNAME, PASSWORD);
// ensure that PDO::prepare returns false when passed invalid SQL
$handle->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
}
catch (Exception $e)
{
// trigger (big, orange) error
trigger_error($e->getMessage(), E_USER_ERROR);
exit;
}
}
// prepare SQL statement
$statement = $handle->prepare($sql);
if ($statement === false)
{
// trigger (big, orange) error
trigger_error($handle->errorInfo()[2], E_USER_ERROR);
exit;
}
// execute SQL statement
$results = $statement->execute($parameters);
// return result set's rows, if any
if ($results !== false)
{
return $statement->fetchAll(PDO::FETCH_ASSOC);
}
else
{
return false;
}
}
当我尝试查询(“Select * From table”)之类的简单操作时,我收到以下错误消息
Fatal error: SQLSTATE[HY000] [1045] Access denied for user 'user'@'localhost' (using password: YES) in /home/user/includes/functions.php on line 142
请,任何帮助将不胜感激。我在网上看了看,好像有些论坛提到我需要按照这篇文章的建议检查我的配置文件:https://forums.cpanel.net/threads/error-link-to-database-cannot-be-established.394212/
编辑:我的计算机上没有 mySQL。我正在使用窗户。我在 cpanel 中的 phpMyAdmin 内部设置了数据库。
【问题讨论】:
-
确保您创建的用户被授予访问数据库的权限。 (如果您创建用户,它不仅会起作用)。