PHP 访问被拒绝

Posted

技术标签:

【中文标题】PHP 访问被拒绝【英文标题】:PHP Access Denied 【发布时间】:2016-01-24 07:00:02 【问题描述】:

我正在尝试将我的数据库连接到我的在线网站,但我的代码不断收到这些错误。

警告:mysqli_connect() [function.mysqli-connect]: (28000/1045): 用户 'DatabaseName'@'28.5.2.24' 的访问被拒绝(使用密码: 是)在第 2 行的 /home/user/public_html/getTemps.php

和错误:

致命错误:函数名必须是字符串 /home/username/public_html/getTemps.php 在第 3 行

这是我所有的代码:

<?php
    $con=mysqli_connect("localhost", "databasename", "password!",   "tablename");
    $result = $mysqli_query($con, "Selcect * From tablename");
    $data = fetch_all($result, MySQLI_ASSOC);
    echo json_encode( $data );
?>

【问题讨论】:

$mysqli_query?还有什么是fetch_all?我不确定mysqli_connect 中的最后一个参数是什么,如果它是数据库名称,我想知道为什么它被称为 tablename 首先,“Select”这个词有错别字 它是一个来自 php 的 SQL 查询,另一行抓取结果并以某种格式返回 最后一个参数是数据库中的表名 查看文档:php.net/manual/en/mysqli.construct.php 您需要按正确的顺序提供正确的参数。 【参考方案1】:
<?php
$con=mysqli_connect("localhost", "databasename", "password!",   "tablename");
$result = $mysqli_query($con, "Selcect * From tablename");
$data = fetch_all($result, MySQLI_ASSOC);
echo json_encode( $data );
?>

把上面的改成这样:

<?php
$con=mysqli_connect("localhost", "username", "password!","databasename");
$sql = "SELECT * FROM tablename";
$result = mysqli_query($con,$sql);
$data = fetch_all($result, MySQLI_ASSOC);
echo json_encode( $data );
?>

如果你想这样连接,我不建议定义:主机、用户名、密码(如果设置)和数据库名称。表名是可选的,但是当您在查询中定义时,不必在连接字符串中定义它。(我确实建议您按照 eddie 所说的方式将所有连接字符串信息放入变量中。因为它是更容易使用。)

至于查询,拼写错误“Select”需要为SELECT

【讨论】:

【参考方案2】:

不推荐连接到数据库的方法,因为它看起来很乱。请在开始之前更改您的“选择”。请阅读文档,因为没有名为“fetch_all”的函数。有一个,但称为“mysqli_fetch_all”。

我推荐你使用的是这个

$HOST = '';
$USERNAME = '';
$PASSWORD = '';
$DB = '';  //Your database name
$link = mysqli_connect($HOST, $USERNAME, $PASSWORD, $DB);

if (!$link) 

//your error message



//Start of your query

【讨论】:

以上是关于PHP 访问被拒绝的主要内容,如果未能解决你的问题,请参考以下文章

PHP的用户'root'@'localhost'访问被拒绝(使用密码:否)[重复]

PHP apache错误:用户'jobportal'@'localhost'的访问被拒绝(使用密码:是)

PHP Laravel:用户'homestead'@'localhost'的访问被拒绝(使用密码:YES)

PHP和MySQLi错误-用户'root'@'localhost'的访问被拒绝(使用密码:否)[重复]

“连接失败:用户'root'@'localhost'的访问被拒绝(使用密码:YES)”来自php函数[重复]

PHP - MySQL 访问被拒绝错误 - 适用于其他程序