![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/laminas/laminas-db/src/Adapter/Platform/ |
<?php namespace Laminas\Db\Adapter\Platform; use Laminas\Db\Adapter\Driver\DriverInterface; use Laminas\Db\Adapter\Driver\Mysqli; use Laminas\Db\Adapter\Driver\Pdo; use Laminas\Db\Adapter\Exception; use Laminas\Db\Adapter\Exception\InvalidArgumentException; use function implode; use function str_replace; class Mysql extends AbstractPlatform { /** * {@inheritDoc} */ protected $quoteIdentifier = ['`', '`']; /** * {@inheritDoc} */ protected $quoteIdentifierTo = '``'; /** @var \mysqli|\PDO|Pdo\Pdo|Mysqli\Mysqli */ protected $driver; /** * NOTE: Include dashes for MySQL only, need tests for others platforms * * @var string */ protected $quoteIdentifierFragmentPattern = '/([^0-9,a-z,A-Z$_\-:])/i'; /** * @param null|\Laminas\Db\Adapter\Driver\Mysqli\Mysqli|\Laminas\Db\Adapter\Driver\Pdo\Pdo|\mysqli|\PDO $driver */ public function __construct($driver = null) { if ($driver) { $this->setDriver($driver); } } /** * @param \Laminas\Db\Adapter\Driver\Mysqli\Mysqli|\Laminas\Db\Adapter\Driver\Pdo\Pdo|\mysqli|\PDO $driver * @return $this Provides a fluent interface * @throws InvalidArgumentException */ public function setDriver($driver) { // handle Laminas\Db drivers if ( $driver instanceof Mysqli\Mysqli || ($driver instanceof Pdo\Pdo && $driver->getDatabasePlatformName() === 'Mysql') || $driver instanceof \mysqli || ($driver instanceof \PDO && $driver->getAttribute(\PDO::ATTR_DRIVER_NAME) === 'mysql') ) { $this->driver = $driver; return $this; } throw new Exception\InvalidArgumentException( '$driver must be a Mysqli or Mysql PDO Laminas\Db\Adapter\Driver, Mysqli instance or MySQL PDO instance' ); } /** * {@inheritDoc} */ public function getName() { return 'MySQL'; } /** * {@inheritDoc} */ public function quoteIdentifierChain($identifierChain) { return '`' . implode('`.`', (array) str_replace('`', '``', $identifierChain)) . '`'; } /** * {@inheritDoc} */ public function quoteValue($value) { $quotedViaDriverValue = $this->quoteViaDriver($value); return $quotedViaDriverValue ?? parent::quoteValue($value); } /** * {@inheritDoc} */ public function quoteTrustedValue($value) { $quotedViaDriverValue = $this->quoteViaDriver($value); return $quotedViaDriverValue ?? parent::quoteTrustedValue($value); } /** * @param string $value * @return string|null */ protected function quoteViaDriver($value) { if ($this->driver instanceof DriverInterface) { $resource = $this->driver->getConnection()->getResource(); } else { $resource = $this->driver; } if ($resource instanceof \mysqli) { return '\'' . $resource->real_escape_string($value) . '\''; } if ($resource instanceof \PDO) { return $resource->quote($value); } return null; } }