我的数据库连接有问题,我真的不明白我该做什么。有人能帮我吗?
警告: /customers/f/4/7/zebratv.se/httpd.www/classes/db.php ()需要精确的2个参数,第47行上的/customers/f/4/7/zebratv.se/httpd.www/classes/db.php给出了一个参数,致命错误:调用第61行的/customers/f/4/7/zebratv.se/httpd.www/classes/db.php中null的成员函数查询()
<?php
class db
{
public function __construct()
{
global $CONFIG;
$mysqli = $CONFIG->get("database");
$this->dbconn($mysqli["host"], $mysqli["username"], $mysqli["password"], $mysqli["database"]);
}
private function dbconn($mysqli_host, $mysqli_user, $mysqli_pass, $mysqli_db)
{
if (!($conn = new mysqli($mysqli_host, $mysqli_user, $mysqli_pass)))
{
switch (mysqli_errno($conn))
{
case 1040:
case 2002:
if ($_SERVER[REQUEST_METHOD] == "GET")
die("<html><head><meta http-equiv=refresh content=\"5 $_SERVER[REQUEST_URI]\"></head><body><table border=0 width=100% height=100%><tr><td><h3 align=center>The server load is very high at the moment. Retrying, please wait...</h3></td></tr></table></body></html>");
else
die("Too many users. Please press the Refresh button in your browser to retry.");
default:
die("[" . mysqli_errno($conn) . "] dbconn: mysqli_connect: " . mysqli_error($conn));
}
}
mysqli_select_db($conn, $mysqli_db)
or die('dbconn: mysqli_select_db: ' + mysqli_error($conn));
usercontrol::userlogin();
}
public function sql_query($query)
{
@++$_SESSION['totalqueries'];
return $conn->query($query);
}
public function sanitize($var)
{
return($this->sqlesc((htmlspecialchars($var))));
}
function sqlesc($x) {
return "'".mysqli_real_escape_string($x)."'";
}
public function sqlerr($file = '', $line = '')
{
print("<table border=0 bgcolor=blue align=left cellspacing=0 cellpadding=10 style='background: blue'>" .
"<tr><td class=embedded><font color=white><h1>SQL Error</h1>\n" .
"<b>" . mysqli_error() . ($file != '' && $line != '' ? "<p>in $file, line $line</p>" : "") . "</b></font></td></tr></table>");
die;
}
public function get_row_count($table, $suffix = "")
{
if ($suffix)
$suffix = " $suffix";
$query = "SELECT COUNT(*) FROM ".$table."".$suffix;
$r = $conn->query($query) or die(mysqli_error());
$a = $conn->fetch_row($r) or die(mysqli_error());
return $a[0];
}
}
$DB = new db;
?>发布于 2015-11-18 09:25:03
发布于 2015-11-18 09:25:16
问题在于:
function sqlesc($x) {
return "'".mysqli_real_escape_string($x)."'";
}这个错误非常简单--当您提供两个参数时,您只提供一个参数。这是函数的文档。
mysqli_real_excape_string()期望第一个参数是当前mysqli连接,第二个参数是字符串:
mysqli_real_excape_string($conn,$x);显然,您需要首先将该变量传递给函数。
https://stackoverflow.com/questions/33776004
复制相似问题