sqlserver.php 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. <?php namespace Laravel\Database\Connectors; use PDO;
  2. class SQLServer extends Connector {
  3. /**
  4. * The PDO connection options.
  5. *
  6. * @var array
  7. */
  8. protected $options = array(
  9. PDO::ATTR_CASE => PDO::CASE_LOWER,
  10. PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
  11. PDO::ATTR_ORACLE_NULLS => PDO::NULL_NATURAL,
  12. PDO::ATTR_STRINGIFY_FETCHES => false,
  13. );
  14. /**
  15. * Establish a PDO database connection.
  16. *
  17. * @param array $config
  18. * @return PDO
  19. */
  20. public function connect($config)
  21. {
  22. extract($config);
  23. // Format the SQL Server connection string. This connection string format can
  24. // also be used to connect to Azure SQL Server databases. The port is defined
  25. // directly after the server name, so we'll create that first.
  26. $port = (isset($port)) ? ','.$port : '';
  27. //check for dblib for mac users connecting to mssql (utilizes freetds)
  28. if (in_array('dblib',PDO::getAvailableDrivers()))
  29. {
  30. $dsn = "dblib:host={$host}{$port};dbname={$database}";
  31. }
  32. else
  33. {
  34. $dsn = "sqlsrv:Server={$host}{$port};Database={$database}";
  35. }
  36. return new PDO($dsn, $username, $password, $this->options($config));
  37. }
  38. }