简体   繁体   English

打开购物车,在顶部显示不推荐使用的信息:mysql_connect()

[英]open cart displaying Deprecated: mysql_connect() message on top

I installed open cart on my local server, but it is displaying a message at top. 我在本地服务器上安装了打开的购物车,但它在顶部显示一条消息。

Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in D:\\new\\htdocs\\business\\system\\database\\mysql.php on line 6 不建议使用:mysql_connect():不建议使用mysql扩展,以后将删除:在第6行的D:\\ new \\ htdocs \\ business \\ system \\ database \\ mysql.php中使用mysqli或PDO代替

How can I fix it ? 我该如何解决?

This error is because you're using PHP 5.5 or above. 此错误是因为您使用的是PHP 5.5或更高版本。 The best solution to this is to not suppress errors as others have said (since that prevents you seeing errors from other issues) but to install a mysqli extension/PDO extension for OpenCart. 最好的解决方案是不要像其他人所说的那样抑制错误(因为这样可以防止您从其他问题中看到错误),而是为OpenCart安装mysqli扩展/ PDO扩展。 This one is free and works well - it's the one I use 这个是免费的并且效果很好-这是我使用的那个

I am using opencart-1.5.6.1.zip on ApacheFriends XAMPP Version 1.8.3 and I see this error message on every page too. 我在ApacheFriends XAMPP版本1.8.3上使用opencart-1.5.6.1.zip,我也在每个页面上看到此错误消息。

Open opencart/config.php and opencart/admin/config.php. 打开opencart / config.php和opencart / admin / config.php。

Edit 'mysql' -> 'mysqli' 编辑'mysql'->'mysqli'

eg 例如

//define('DB_DRIVER', 'mysql');
define('DB_DRIVER', 'mysqli');

Save the files and no need to restart anything. 保存文件,无需重新启动任何文件。 The error message is gone. 错误消息不见了。

below is the code for PDO in opencart 1.5.6 or < 以下是opencart 1.5.6或<

    <?php
/**
 * Class for working with database (PDO)
 *
 * @property \PDO $dbh
 *
 * @author      WebImperia Dev
 * @since 0.0.1
 */
final class OC_PDO
{
    /**
     * Link to the database connection
     *
     * @var \PDO
     */
    private $dbh;
    /**
     * List of connection settings
     *
     * @var array
     */
    private $options = array(
        'PDO::ATTR_ERRMODE' => PDO::ERRMODE_SILENT
    );
    /**
     * The number of rows affected by the last operation
     *
     * @var int
     */
    private $affectedRows = 0;
    /**
     * The data for the database connection
     *
     * @var \stdClass
     */
    private $params = array();
    /**
     * Sets the connection and connects to the database
     *
     * @param string $host server Address
     * @param string $user Username
     * @param string $pass Password
     * @param string $name The database name
     * @param string $charset Encoding connection
     */
    public function __construct($host, $user, $pass, $name, $charset = 'utf8')
    {
        $this->params = new stdClass;
        # keep connection data
        $this->params->host    = $host;
        $this->params->user    = $user;
        $this->params->pass    = $pass;
        $this->params->name    = $name;
        $this->params->charset = $charset;
        $this->params->connstr = "mysql:host={$host};dbname={$name};charset={$charset}";
        # add the connection parameters
        $this->options['PDO::MYSQL_ATTR_INIT_COMMAND'] = "SET NAMES '{$charset}'";
        $this->connect();
    }
    /**
     * Connect to database
     */
    public function connect()
    {
        try {
            $this->dbh = new PDO($this->params->connstr, $this->params->user, $this->params->pass, $this->options);
            if (version_compare(PHP_VERSION, '5.3.6', '<=')) {
                $this->dbh->exec($this->options['PDO::MYSQL_ATTR_INIT_COMMAND']);
            }
        } catch (PDOException $exception) {
            trigger_error($exception->getMessage());
        }
    }
    /**
     * Query the database
     *
     * @param string $sql
     * @return \stdClass
     */
    public function query($sql = null)
    {
        if ($this->dbh) {
            $data = new stdClass;

            $sth=$this->dbh->prepare($sql);
            $sth->execute();
            //$sth= $this->dbh->query($sql);
            $this->affectedRows = $sth->rowCount();
            $data->rows         = $sth ? $sth->fetchAll() : array();
            $data->row          = isset($data->rows[0]) ? $data->rows[0] : null;
            $data->num_rows     = $this->affectedRows;
            return $data;
        }
        return null;
    }
    /**
     * Concludes the string in quotation marks to be used in the query
     *
     * @param mixed $string shielded line
     * @return string Returns shielded line or to FALSE , if the driver does not support screening
     */
    public function escape($string = null)
    {
        return $this->dbh ? $this->dbh->quote($string) : null;
    }
    /**
     * Gets the number of rows affected by the last operation
     *
     * @return int
     */
    public function countAffected()
    {
        return $this->affectedRows;
    }
    /**
     * Gets the ID of the last inserted row or sequence of values
     *
     * @return int
     */
    public function getLastId()
    {
        return $this->dbh ? $this->dbh->lastInsertId() : 0;
    }
    /**
     * Gets the name of the driver
     *
     * @return string|null
     */
    public function getDriverName()
    {
        return $this->dbh ? $this->dbh->getAttribute(PDO::ATTR_DRIVER_NAME) : null;
    }
    /**
     * Get information about the version of the client libraries that are used by the PDO driver
     *
     * @return string|null
     */
    public function getVersion()
    {
        return $this->dbh ? $this->dbh->getAttribute(PDO::ATTR_CLIENT_VERSION) : null;
    }
    /**
     * Closing a database connection
     */
    public function close()
    {
        $this->dbh = null;
    }
    public function __destruct()
    {
        $this->close();
    }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM