E/输入行结果:
警告: mysql_connect((: 访问 拒绝用户"root"@"DESKTOP-2Q0OODR"(使用密码:否( C:\xampp\htdocs\chatter\mysql.class.php 在第 28
行 03-29 22:33:50.633 7032-17538/com.baidar.androidChatter E/InputlineResult:
警告: mysql_connect((: 访问 拒绝用户"root"@"DESKTOP-2Q0OODR"(使用密码:否( C:\xampp\htdocs\chatter\mysql.class.php 在第 28
行 03-29 22:33:50.633 7032-17538/com.baidar.androidChatter E/OuterResult:
警告: mysql_connect((: 访问被拒绝 对于用户"root"@"DESKTOP-2Q0OODR"(使用密码:否( C:\xampp\htdocs\chatter\mysql.class.php 在第 28
警告:mysql_query(( 期望参数 2 为 资源,布尔值在 C:\xampp\htdocs\chatter\mysql.class.php 在第 68
行
<?php
class MySQL
{
private $dbLink;
private $dbHost;
private $dbUsername;
private $dbPassword;
private $dbName;
public $queryCount;
function MySQL($dbHost,$dbUsername,$dbPassword,$dbName)
{
$this->dbHost = $dbHost;
$this->dbUsername = $dbUsername;
$this->dbPassword = $dbPassword;
$this->dbName = $dbName;
$this->queryCount = 0;
}
function __destruct()
{
$this->close();
}
//connect to database
private function connect() {
$this->dbLink = mysql_connect($this->dbHost, $this->dbUsername, $this->dbPassword);
if (!$this->dbLink) {
$this->ShowError();
return false;
}
else if (!mysql_select_db($this->dbName,$this->dbLink)) {
$this->ShowError();
return false;
}
else {
mysql_query("set names latin5",$this->dbLink);
return true;
}
unset ($this->dbHost, $this->dbUsername, $this->dbPassword, $this->dbName);
}
/*****************************
* Method to close connection *
*****************************/
function close()
{
@mysql_close($this->dbLink);
}
/*******************************************
* Checks for MySQL Errors
* If error exists show it and return false
* else return true
*******************************************/
function ShowError()
{
$error = mysql_error();
//echo $error;
}
/****************************
* Method to run SQL queries
****************************/
function query($sql)
{
if (!$this->dbLink)
$this->connect();
if (! $result = mysql_query($sql,$this->dbLink)) {
$this->ShowError();
return false;
}
$this->queryCount++;
return $result;
}
/************************
* Method to fetch values*
*************************/
function fetchObject($result)
{
if (!$Object=mysql_fetch_object($result))
{
$this->ShowError();
return false;
}
else
{
return $Object;
}
}
/*************************
* Method to number of rows
**************************/
function numRows($result)
{
if (false === ($num = mysql_num_rows($result))) {
$this->ShowError();
return -1;
}
return $num;
}
/*******************************
* Method to safely escape strings
*********************************/
function escapeString($string)
{
if (get_magic_quotes_gpc())
{
return $string;
}
else
{
$string = mysql_escape_string($string);
return $string;
}
}
function free($result)
{
if (mysql_free_result($result)) {
$this->ShowError();
return false;
}
return true;
}
function lastInsertId()
{
return mysql_insert_id($this->dbLink);
}
function getUniqueField($sql)
{
$row = mysql_fetch_row($this->query($sql));
return $row[0];
}
function testconnection() {
$this->dbLink = mysql_connect($this->dbHost, $this->dbUsername, $this->dbPassword);
if (!$this->dbLink) {
$this->ShowError();
return false;
}
else if (!mysql_select_db($this->dbName,$this->dbLink)) {
$this->ShowError();
return false;
}
else {
mysql_query("set names latin5",$this->dbLink);
return true;
}
unset ($this->dbHost, $this->dbUsername, $this->dbPassword, $this->dbName);
}
}
在第 28 行代码说 Fatal Error
,在第 68 行代码说 access denied
。
第 28-> $this->dbLink = mysql_connect($this->dbHost, $this->dbUsername, $this->dbPassword(;
第 68-> 行 if (! $result = mysql_query($sql,$this->dbLink((
错误消息几乎说明了一切。使用您尝试的凭据,您无权访问数据库。一个很大的线索是错误消息告诉您您尝试在没有密码的情况下访问数据库。
错误在于你已经将一个名为MySQL
的函数编写到名为MySQL
的class
中,该函数可能旨在成为构造函数,因为这就是您用许多语言编写构造函数的方式,例如Java和co。
function __construct($dbHost,$dbUsername,$dbPassword,$dbName)
此外,mysql_被认为是不安全的,并且已弃用。改用PDO或mysqli_,也要注意SQL注入。