Prestashop 1.4 - 如何对每个请求执行初始 MySQL 查询

Prestashop 1.4 - How to execute an initial MySQL query on every request

Prestashop 的旧版本,我知道,但我需要在每个请求.

上执行初始 MySQL 查询

我需要将要always 执行的逻辑放在哪里? 无论请求什么 URL,应用程序始终执行的某种初始化点。

提前致谢。

终于找到了解决方案(我认为很聪明)。 而且我还认为这种方法可以适用于其他版本的 Prestashop(1.5、1.6、1.7...)。

classes/MySQL.php 文件中的 connect 函数中,我在返回 $this->_link:

之前添加了我的查询
public function connect()
{
    if (!defined('_PS_DEBUG_SQL_'))
        define('_PS_DEBUG_SQL_', false);
    if ($this->_link = mysql_connect($this->_server, $this->_user, $this->_password))
    {
        if (!$this->set_db($this->_database))
            die('The database selection cannot be made.');
    }
    else
        die('Link to database cannot be established.');
    /* UTF-8 support */
    if (!mysql_query('SET NAMES \'utf8\'', $this->_link))
        die(Tools::displayError('PrestaShop Fatal error: no utf-8 support. Please check your server configuration.'));
    // removed SET GLOBAL SQL_MODE : we can't do that (see PSCFI-1548)

    /** MY QUERY IS INSERTED HERE, USING $this->_link BY THE WAY **/
    mysql_query('...', $this->_link);

    return $this->_link;
}

这样,有2个好处:

  1. 除了 Prestashop 的
  2. ,我不需要维护数据库凭据的副本
  3. 查询在每个请求中执行,包括商店前台和后台用户界面。

希望对大家有所帮助。