mysql - Opencart 网站下页

标签 mysql opencart

想知道如果 MySql 数据库不可用,opencart 中是否有一种简单的方法来显示一个页面说网站已关闭,而不是显示所有错误?

目前,我的主机在使用 MySQL 服务器时出现问题,当我访问我的站点时,我遇到了一堆错误:

警告:mysql_connect() [function.mysql-connect]:无法通过 xxxxxxxxx/public_html/system/database/中的套接字 '/var/lib/mysql/mysql.sock' (2) 连接到本地 MySQL 服务器第 6 行的 mysql.php

注意:错误:Could not make a database link using xxxxxxxxxx@localhost in/home/flamingl/public_html/system/database/mysql.php on line 7

最佳答案

在 OpenCart 中并没有真正好的方法来做到这一点。也就是说,这是肮脏的方式:

在您的根目录中创建一个maintenance.php,其中包含以下内容(如果数据库连接失败,它将被加载):

<?php
// Tell any crawlers visiting the site that it's currently unavailable
header('HTTP/1.1 503 Service Temporarily Unavailable');
header('Status: 503 Service Temporarily Unavailable');
header('Retry-After: 300');//300 seconds
?>
<html><body>
<h1>Sorry, the website is currently unavailable</h1>
...
...
</body></html>

/system/database/mysql.php中的__construct方法修改为:

public function __construct($hostname, $username, $password, $database) {
  if (!$this->link = @mysql_connect($hostname, $username, $password)) {
    exit(include(DIR_SYSTEM . '../maintenance.php'));
  }

  if (!mysql_select_db($database, $this->link)) {
    exit(include(DIR_SYSTEM . '../maintenance.php'));
  }

  mysql_query("SET NAMES 'utf8'", $this->link);
  mysql_query("SET CHARACTER SET utf8", $this->link);
  mysql_query("SET CHARACTER_SET_CONNECTION=utf8", $this->link);
  mysql_query("SET SQL_MODE = ''", $this->link);
}

关于mysql - Opencart 网站下页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19645234/

相关文章:

PHP - MySQL,排序克隆

mysql - 如何删除mysql中唯一的记录?

php - Opencart 2.3 注意:未定义属性:Proxy::function_name

javascript - Opencart 1.5.5.1 结账不工作

php文件管理器数据库设计(mysql)

mysql - mySQL 如何按日期时间排序?

php - 在 PHP 中循环遍历 mysql_fetch_array

php - jQuery $.ajax 请求在 Internet Explorer 中收到错误响应

Opencart 列出制造商内部的类别

php - OpenCart 是否对 OWASP 前 10 强?