HEX
Server: Apache
System: Linux sxb1plzcpnl440011.prod.sxb1.secureserver.net 4.18.0-553.54.1.lve.el8.x86_64 #1 SMP Wed Jun 4 13:01:13 UTC 2025 x86_64
User: xfp2mtarcm67 (7705020)
PHP: 7.3.33
Disabled: NONE
Upload Files
File: //proc/self/cwd/wp-content/plugins/worker/src/MWP/IncrementalBackup/Database/MysqlConnection.php
<?php
/*
 * This file is part of the ManageWP Worker plugin.
 *
 * (c) ManageWP LLC <[email protected]>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

class MWP_IncrementalBackup_Database_MysqlConnection implements MWP_IncrementalBackup_Database_ConnectionInterface
{

    /**
     * @var resource
     */
    private $connection;

    /**
     * @var
     */
    private $configuration;

    public function __construct(MWP_IncrementalBackup_Database_Configuration $configuration)
    {
        $this->configuration = $configuration;

        if (!extension_loaded('mysql')) {
            throw new MWP_IncrementalBackup_Database_Exception_ConnectionException("Mysql extension is not loaded.");
        }

        if ($configuration->isSocket()) {
            /** @handled function */
            $this->connection = @mysql_connect(':'.$configuration->getSocketPath(), $configuration->getUsername(), $configuration->getPassword());
        } else {
            $host = $configuration->getHost();
            if ($configuration->getPort() !== null) {
                $host .= ':'.$configuration->getPort();
            }
            /** @handled function */
            $this->connection = @mysql_connect($host, $configuration->getUsername(), $configuration->getPassword());
        }

        if (!is_resource($this->connection)) {
            throw new MWP_IncrementalBackup_Database_Exception_ConnectionException(mysql_error(), mysql_errno());
        }
        /** @handled function */
        @mysql_set_charset($configuration->getCharset(), $this->connection);
        /** @handled function */
        mysql_select_db($configuration->getDatabase(), $this->connection);
    }

    /**
     * {@inheritdoc}
     */
    public function query($query, $useResult = false)
    {
        if ($useResult) {
            /** @handled function */
            $result = mysql_unbuffered_query($query, $this->connection);
        } else {
            /** @handled function */
            $result = mysql_query($query, $this->connection);
        }

        if ($result === false) {
            throw new MWP_IncrementalBackup_Database_Exception_ConnectionException(mysql_error($this->connection), mysql_errno($this->connection));
        }

        return new MWP_IncrementalBackup_Database_MysqlStatement($result);
    }

    /**
     * @param mixed $value any primitive value
     *
     * @return string
     */
    public function quote($value)
    {
        return "'".mysql_real_escape_string($value, $this->connection)."'";
    }
}