class dbConn {
private static $dbConn;
public function __construct()
{
try {
//$this->dbConn = new mysqli(dbHost, dbUser, dbPass, dbName) or die();
$this->dbConn = mysqli_connect(dbHost, dbUser, dbPass, dbName) or die();
//mysqli_select_db($this->dbConn, dbName) or die();
@mysqli_set_charset($this->dbConn, 'utf8');
} catch (Exception $e) {
die($e->getMessage());
}
}
public static function singleton()
{
if(!isset(self::$dbConn)) {
$c = __CLASS__;
self::$dbConn = new $c;
}
return self::$dbConn;
}
public function query($sql)
{
try {
if(!$q = mysqli_query($this->dbConn, $sql))
throw new Exception($this->debug($sql));
} catch (Exception $e) {
die($e->getMessage());
}
return $q;
}
public function getValue($sql)
{
$row = mysqli_fetch_row($this->query($sql));
return $row[0];
}
public function getRow($sql, $cache = 1)
{
$res = mysqli_fetch_assoc($this->query($sql));
return $res;
}
public function getRows($sql, $cache = 1)
{
$q = $this->query($sql);
while($row = mysqli_fetch_assoc($q))
$res[] = $row;
return $res;
}
public function getLastInsertId() {
return mysqli_insert_id($this->dbConn);
}
public function getRowNum($sql)
{
$res = mysqli_num_rows($this->query($sql));
return $res;
}
/* Escape */
public function varEscape()
{
if($_GET) $_GET = $this->arrayEscape($_GET);
if($_POST) $_POST = $this->arrayEscape($_POST);
if($_COOKIE) $_COOKIE = $this->arrayEscape($_COOKIE);
if($_REQUEST) $_REQUEST = $this->arrayEscape($_REQUEST);
}
public function arrayEscape($arr)
{
foreach($arr as $key => $val)
$arr[$key] = is_array($val) ? $this->arrayEscape($val) : $this->strEscape($val);
return $arr;
}
public function strEscape($str)
{
if(get_magic_quotes_gpc())
$str = stripslashes($str);
$str = trim($str);
$str = $this->strControl($str);
$str = mysqli_real_escape_string($this->dbConn, $str);
return $str;
}
public function strControl($str)
{
$s = array('/*', '*/', 'UNION', 'NULL', '<!--', '-->');
$r = array('', '', '', '', '', '');
return $str = str_replace($s, $r, $str);
}
public function debug($sql = 'N/A')
{
if(DEBUG) {
$str = '<b>Debug Mode!</b>'
. '<br />Referer: ' . $_SERVER['HTTP_REFERER']
. '<br />File: ' . $_SERVER['PHP_SELF']
. '<br />Error: ' . mysqli_error($this->dbConn)
. '<br />SQL: ' . $sql;
foreach($_GET as $key => $val)
$str .= '<br />GET: ' . $key . ' = ' . $val;
foreach($_POST as $key => $val)
$str .= '<br />POST: ' . $key . ' = ' . (is_array($val) ? print_r($val, true) : $val);
foreach($_FILES as $key => $val)
$str .= '<br />FILES: ' . $key . ' = ' . (is_array($val) ? print_r($val, true) : $val);
foreach($_SESSION as $key => $val)
$str .= '<br />SESSION: ' . $key . ' = ' . (is_array($val) ? print_r($val, true) : $val);
$css = 'font-family: Arial; font-size: 12px; color: red;';
$str = '<pre style="' . $css . '">' . $str . '</pre>';
}
return $str;
}
public function __destruct() {
mysqli_close($this->dbConn);
}
}
这是我用于连接和其他查询人员的代码。现在它给了我一些错误,比如:
PHP警告:mysqli_connect()[function.mysqli连接]:(08004/1040):第19行 /home/account/public_html/library/class.db.blog.php连接太多
PHP警告:mysqli_close()期望参数1为mysqli,布尔值在第152行的 /home/account/public_html/library/class.db.blog.php中给出
有什么解决办法吗?
第一个错误:
PHP警告:mysqli_connect()[function.mysqli连接]:(08004/1040):第19行 /home/account/public_html/library/class.db.blog.php连接太多
如果在尝试连接到mysqld服务器时出现连接过多错误,这意味着其他客户端正在使用所有可用的连接。来源
这个数据库上还有其他服务吗?看起来其他服务使用了所有可用的连接。
第二个错误:
PHP警告:mysqli_close()期望参数1为mysqli,布尔值在第152行的 /home/account/public_html/library/class.db.blog.php中给出
别担心这个。当尝试打开下一个连接并达到连接限制时,mysqli_connection将返回false值。比脚本尝试mysqli_close(false);当你修复第一个问题,第二个也会被修复。
想改进这个问题吗 通过编辑此帖子,更新问题,使其只关注一个问题。 我被问到这个问题,我不确定我下面的回答是否正确。它可以运行,但是否太混乱了? 考虑给定的代码。 > 解释为什么语句@line7打印0.0。您可以将您的解释写成内联注释 更新代码,使其打印0.5(带解释)。 int i1=1,i2=2;双d3; d3=i1/i2; 系统出来println(((i1/i2)=“d4);}}} 我的回答正
问题内容: 按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 我一直在阅读有关使用mysqli与pdo在php中使用mysql的一些问题。 我见过诸如mysqli或PDO之类的问题- 优缺点是什么? 或从mysql移至my
问题内容: 按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 MySQL还是MySQLi哪个更好?又为什么呢 我应该使用哪个? 我的意思是不仅在性能方面,而且在其他任何相关功能方面也更好。 问题答案: 如果您查看MySQL
问题内容: 按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 与MySQL相比,使用MySQLi有什么优势? 问题答案: 见文档: PHP的mysqli扩展是什么? mysqli扩展或MySQL改进的扩展是为了利用MySQ
以下是错误: 这是导致问题的代码区域。 这个错误意味着什么?需要做什么来修复上面的代码?