summaryrefslogtreecommitdiff
path: root/vendor/fguillot/picodb/lib/PicoDb/Driver/Mssql.php
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/fguillot/picodb/lib/PicoDb/Driver/Mssql.php')
-rw-r--r--vendor/fguillot/picodb/lib/PicoDb/Driver/Mssql.php178
1 files changed, 0 insertions, 178 deletions
diff --git a/vendor/fguillot/picodb/lib/PicoDb/Driver/Mssql.php b/vendor/fguillot/picodb/lib/PicoDb/Driver/Mssql.php
deleted file mode 100644
index 83e75af2..00000000
--- a/vendor/fguillot/picodb/lib/PicoDb/Driver/Mssql.php
+++ /dev/null
@@ -1,178 +0,0 @@
-<?php
-
-namespace PicoDb\Driver;
-
-use PDO;
-
-/**
- * Microsoft SQL Server Driver
- *
- * @package PicoDb\Driver
- * @author Algy Taylor <thomas.taylor@cmft.nhs.uk>
- */
-class Mssql extends Base
-{
- /**
- * List of required settings options
- *
- * @access protected
- * @var array
- */
- protected $requiredAttributes = array(
- 'hostname',
- 'username',
- 'password',
- 'database',
- );
-
- /**
- * Table to store the schema version
- *
- * @access private
- * @var array
- */
- private $schemaTable = 'schema_version';
-
- /**
- * Create a new PDO connection
- *
- * @access public
- * @param array $settings
- */
- public function createConnection(array $settings)
- {
- $dsn = 'sqlsrv:Server=' . $settings['hostname'] . ';Database=' . $settings['database'];
-
- if (! empty($settings['port'])) {
- $dsn .= ';port=' . $settings['port'];
- }
-
- $this->pdo = new PDO($dsn, $settings['username'], $settings['password']);
-
- if (isset($settings['schema_table'])) {
- $this->schemaTable = $settings['schema_table'];
- }
- }
-
- /**
- * Enable foreign keys
- *
- * @access public
- */
- public function enableForeignKeys()
- {
- $this->pdo->exec('EXEC sp_MSforeachtable @command1="ALTER TABLE ? CHECK CONSTRAINT ALL"; GO;');
- }
-
- /**
- * Disable foreign keys
- *
- * @access public
- */
- public function disableForeignKeys()
- {
- $this->pdo->exec('EXEC sp_MSforeachtable @command1="ALTER TABLE ? NOCHECK CONSTRAINT ALL"; GO;');
- }
-
- /**
- * Return true if the error code is a duplicate key
- *
- * @access public
- * @param integer $code
- * @return boolean
- */
- public function isDuplicateKeyError($code)
- {
- return $code == 2601;
- }
-
- /**
- * Escape identifier
- *
- * https://msdn.microsoft.com/en-us/library/ms175874.aspx
- *
- * @access public
- * @param string $identifier
- * @return string
- */
- public function escape($identifier)
- {
- return '['.$identifier.']';
- }
-
- /**
- * Get non standard operator
- *
- * @access public
- * @param string $operator
- * @return string
- */
- public function getOperator($operator)
- {
- if ($operator === 'LIKE' || $operator === 'ILIKE') {
- return 'LIKE';
- }
-
- return '';
- }
-
- /**
- * Get last inserted id
- *
- * @access public
- * @return integer
- */
- public function getLastId()
- {
- return $this->pdo->lastInsertId();
- }
-
- /**
- * Get current schema version
- *
- * @access public
- * @return integer
- */
- public function getSchemaVersion()
- {
- $this->pdo->exec("CREATE TABLE IF NOT EXISTS [".$this->schemaTable."] ([version] INT DEFAULT '0')");
-
- $rq = $this->pdo->prepare('SELECT [version] FROM ['.$this->schemaTable.']');
- $rq->execute();
- $result = $rq->fetchColumn();
-
- if ($result !== false) {
- return (int) $result;
- }
- else {
- $this->pdo->exec('INSERT INTO ['.$this->schemaTable.'] VALUES(0)');
- }
-
- return 0;
- }
-
- /**
- * Set current schema version
- *
- * @access public
- * @param integer $version
- */
- public function setSchemaVersion($version)
- {
- $rq = $this->pdo->prepare('UPDATE ['.$this->schemaTable.'] SET [version]=?');
- $rq->execute(array($version));
- }
-
- /**
- * Run EXPLAIN command
- *
- * @param string $sql
- * @param array $values
- * @return array
- */
- public function explain($sql, array $values)
- {
- $this->getConnection()->exec('SET SHOWPLAN_ALL ON');
- return $this->getConnection()->query($this->getSqlFromPreparedStatement($sql, $values))->fetchAll(PDO::FETCH_ASSOC);
- }
-}