Microsoft Drivers for PHP for SQL Server支援PHP7.0

記得之前提過XAMPP支援php連線SQL Server,當時只支援到5.6。但最近因為PHP7.0已釋出後,所以微軟也發佈了支援PHP7.0的4.0版本。
Version 4.0 supports PHP 7.0+
Version 3.2 supports PHP 5.6, 5.5, and 5.4
Version 3.1 supports PHP 5.5 and 5.4
Version 3.0 supports PHP 5.4.




set PATH=%PATH%;d:\xampp\php


extension_dir = “d:\xampp\php\ext”

browscap = “d:\xampp\php\extras\browscap.ini”


D:\xampp\php>php.exe c:\programdata\composersetup\bin\composer.phar self-update

D:\xampp\htdocs>composer create-project laravel/laravel laraveltest

D:\xampp\htdocs>composer create-project laravel/laravel laraveltest
Installing laravel/laravel (v5.2.0)
– Installing laravel/laravel (v5.2.0)
Downloading: 100%

Created project in laraveltest
> php -r “copy(‘.env.example’, ‘.env’);”
Loading composer repositories with package information
Installing dependencies (including require-dev)
– Installing vlucas/phpdotenv (v2.2.0)
Downloading: 100%

– Installing symfony/polyfill-mbstring (v1.1.0)
Downloading: 100%

– Installing symfony/var-dumper (v3.0.2)
Downloading: 100%

– Installing symfony/translation (v3.0.2)
Downloading: 100%

– Installing symfony/routing (v3.0.2)
Downloading: 100%

– Installing symfony/process (v3.0.2)
Downloading: 100%

– Installing symfony/polyfill-util (v1.1.0)
Downloading: 100%

– Installing symfony/polyfill-php56 (v1.1.0)
Downloading: 100%

– Installing psr/log (1.0.0)
Downloading: 100%

– Installing symfony/debug (v3.0.2)
Downloading: 100%

– Installing symfony/http-foundation (v3.0.2)
Downloading: 100%

– Installing symfony/event-dispatcher (v3.0.2)
Downloading: 100%

– Installing symfony/http-kernel (v3.0.2)
Downloading: 100%

– Installing symfony/finder (v3.0.2)
Downloading: 100%

– Installing symfony/console (v3.0.2)
Downloading: 100%

– Installing swiftmailer/swiftmailer (v5.4.1)
Downloading: 100%

– Installing jakub-onderka/php-console-color (0.1)
Downloading: 100%

– Installing jakub-onderka/php-console-highlighter (v0.3.2)
Downloading: 100%

– Installing dnoegel/php-xdg-base-dir (0.1)
Downloading: 100%

– Installing nikic/php-parser (v2.0.0)
Downloading: 100%

– Installing psy/psysh (v0.6.1)
Downloading: 100%

– Installing paragonie/random_compat (v1.2.0)
Downloading: 100%

– Installing nesbot/carbon (1.21.0)
Downloading: 100%

– Installing mtdowling/cron-expression (v1.1.0)
Downloading: 100%

– Installing monolog/monolog (1.17.2)
Downloading: 100%

– Installing league/flysystem (1.0.16)
Downloading: 100%

– Installing jeremeamia/superclosure (2.2.0)
Downloading: 100%

– Installing doctrine/inflector (v1.1.0)
Downloading: 100%

– Installing classpreloader/classpreloader (3.0.0)
Downloading: 100%

– Installing laravel/framework (v5.2.14)
Downloading: 100%

– Installing fzaninotto/faker (v1.5.0)
Downloading: 100%

– Installing hamcrest/hamcrest-php (v1.2.2)
Downloading: 100%

– Installing mockery/mockery (0.9.4)
Downloading: 100%

– Installing sebastian/version (1.0.6)
Downloading: 100%

– Installing sebastian/global-state (1.1.1)
Downloading: 100%

– Installing sebastian/recursion-context (1.0.2)
Downloading: 100%

– Installing sebastian/exporter (1.2.1)
Downloading: 100%

– Installing sebastian/environment (1.3.3)
Downloading: 100%

– Installing sebastian/diff (1.4.1)
Downloading: 100%

– Installing sebastian/comparator (1.2.0)
Downloading: 100%

– Installing symfony/yaml (v3.0.2)
Downloading: 100%

– Installing doctrine/instantiator (1.0.5)
Downloading: 100%

– Installing phpdocumentor/reflection-docblock (2.0.4)
Downloading: 100%

– Installing phpspec/prophecy (v1.5.0)
Downloading: 100%

– Installing phpunit/php-text-template (1.2.1)
Downloading: 100%

– Installing phpunit/phpunit-mock-objects (2.3.8)
Downloading: 100%

– Installing phpunit/php-timer (1.0.7)
Downloading: 100%

– Installing phpunit/php-token-stream (1.4.8)
Downloading: 100%

– Installing phpunit/php-file-iterator (1.4.1)
Downloading: 100%

– Installing phpunit/php-code-coverage (2.2.4)
Downloading: 100%

– Installing phpunit/phpunit (4.8.23)
Downloading: 100%

– Installing symfony/css-selector (v3.0.2)
Downloading: 100%

– Installing symfony/dom-crawler (v3.0.2)
Downloading: 100%

symfony/var-dumper suggests installing ext-symfony_debug ()
symfony/translation suggests installing symfony/config ()
symfony/routing suggests installing symfony/config (For using the all-in-one rou
ter or any loader)
symfony/routing suggests installing symfony/expression-language (For using expre
ssion matching)
symfony/routing suggests installing doctrine/annotations (For using the annotati
on loader)
symfony/routing suggests installing symfony/dependency-injection (For loading ro
utes from a service)
symfony/event-dispatcher suggests installing symfony/dependency-injection ()
symfony/http-kernel suggests installing symfony/browser-kit ()
symfony/http-kernel suggests installing symfony/class-loader ()
symfony/http-kernel suggests installing symfony/config ()
symfony/http-kernel suggests installing symfony/dependency-injection ()
psy/psysh suggests installing ext-pcntl (Enabling the PCNTL extension makes PsyS
H a lot happier :))
psy/psysh suggests installing ext-posix (If you have PCNTL, you’ll want the POSI
X extension as well.)
psy/psysh suggests installing ext-readline (Enables support for arrow-key histor
y navigation, and showing and manipulating command history.)
psy/psysh suggests installing ext-pdo-sqlite (The doc command requires SQLite to
paragonie/random_compat suggests installing ext-libsodium (Provides a modern cry
pto API that can be used to generate random bytes.)
monolog/monolog suggests installing graylog2/gelf-php (Allow sending log message
s to a GrayLog2 server)
monolog/monolog suggests installing raven/raven (Allow sending log messages to a
Sentry server)
monolog/monolog suggests installing doctrine/couchdb (Allow sending log messages
to a CouchDB server)
monolog/monolog suggests installing ruflin/elastica (Allow sending log messages
to an Elastic Search server)
monolog/monolog suggests installing videlalvaro/php-amqplib (Allow sending log m
essages to an AMQP server using php-amqplib)
monolog/monolog suggests installing ext-amqp (Allow sending log messages to an A
MQP server (1.0+ required))
monolog/monolog suggests installing ext-mongo (Allow sending log messages to a M
ongoDB server)
monolog/monolog suggests installing aws/aws-sdk-php (Allow sending log messages
to AWS services like DynamoDB)
monolog/monolog suggests installing rollbar/rollbar (Allow sending log messages
to Rollbar)
monolog/monolog suggests installing php-console/php-console (Allow sending log m
essages to Google Chrome)
league/flysystem suggests installing ext-fileinfo (Required for MimeType)
league/flysystem suggests installing league/flysystem-eventable-filesystem (Allo
ws you to use EventableFilesystem)
league/flysystem suggests installing league/flysystem-rackspace (Allows you to u
se Rackspace Cloud Files)
league/flysystem suggests installing league/flysystem-copy (Allows you to use Co storage)
league/flysystem suggests installing league/flysystem-azure (Allows you to use W
indows Azure Blob storage)
league/flysystem suggests installing league/flysystem-webdav (Allows you to use
WebDAV storage)
league/flysystem suggests installing league/flysystem-aws-s3-v2 (Allows you to u
se S3 storage with AWS SDK v2)
league/flysystem suggests installing league/flysystem-aws-s3-v3 (Allows you to u
se S3 storage with AWS SDK v3)
league/flysystem suggests installing league/flysystem-dropbox (Allows you to use
Dropbox storage)
league/flysystem suggests installing league/flysystem-cached-adapter (Flysystem
adapter decorator for metadata caching)
league/flysystem suggests installing league/flysystem-sftp (Allows you to use SF
TP server storage via phpseclib)
league/flysystem suggests installing league/flysystem-ziparchive (Allows you to
use ZipArchive adapter)
laravel/framework suggests installing aws/aws-sdk-php (Required to use the SQS q
ueue driver and SES mail driver (~3.0).)
laravel/framework suggests installing doctrine/dbal (Required to rename columns
and drop SQLite columns (~2.4).)
laravel/framework suggests installing guzzlehttp/guzzle (Required to use the Mai
lgun and Mandrill mail drivers and the ping methods on schedules (~5.3|~6.0).)
laravel/framework suggests installing league/flysystem-aws-s3-v3 (Required to us
e the Flysystem S3 driver (~1.0).)
laravel/framework suggests installing league/flysystem-rackspace (Required to us
e the Flysystem Rackspace driver (~1.0).)
laravel/framework suggests installing pda/pheanstalk (Required to use the beanst
alk queue driver (~3.0).)
laravel/framework suggests installing predis/predis (Required to use the redis c
ache and queue drivers (~1.0).)
laravel/framework suggests installing pusher/pusher-php-server (Required to use
the Pusher broadcast driver (~2.0).)
fzaninotto/faker suggests installing ext-intl (*)
sebastian/global-state suggests installing ext-uopz (*)
phpdocumentor/reflection-docblock suggests installing dflydev/markdown (~1.0)
phpdocumentor/reflection-docblock suggests installing erusev/parsedown (~1.0)
phpunit/php-code-coverage suggests installing ext-xdebug (>=2.2.1)
phpunit/phpunit suggests installing phpunit/php-invoker (~1.1)
Writing lock file
Generating autoload files
> php artisan clear-compiled
> php artisan optimize
Generating optimized class loader
> php artisan key:generate
Application key [CZbM380YshFe0R8UK5zFMlYvL2Xa1WPG] set successfully.




1. PHP.ini中的extension=php_openssl.dll 前面的;要移除,重開apache
2..htaccess, index.php, favicon.ico從public移至上一層
require __DIR__.’/../bootstrap/autoload.php’;

require __DIR__.’/bootstrap/autoload.php’;

$app = require_once __DIR__.’/../bootstrap/app.php’;

$app = require_once __DIR__.’/bootstrap/app.php’;


XAMPP(也有免安裝版本) 是目前Windows上面最熱門的php開發環境套件,唯一美中不足的是無法連結MS SQL。至於有沒有解決方式?當然是有的囉!


二、到微軟網站下載Microsoft Drivers for PHP for SQL Server,對應的版本是

  • Version 3.2 supports PHP 5.6, 5.5, and 5.4
  • Version 3.1 supports PHP 5.5 and 5.4
  • Version 3.0 supports PHP 5.4.


xampmssql0024.接下來我們確認一下PHP是ThreadSafe或是non-ThreadSafe版本,到XAMPP\php目錄下,找php.dll版本。看到是php5ts.dll(PHP5 ThreadSafe)。









xampmssql008 xampmssql007


八、回到phpinfo()頁面,如果安裝成功可以搜尋到sqlsrv跟pdo_sqlsrvxampmssql010 xampmssql009九、接著就可以連線到sql資料庫(本文以CodeIgniter為例)

xampmssql012 xampmssql011

$query = $this->db->get(‘cmed’)->result_array();
array_walk_recursive($query, function(&$value, $key) {
if(is_string($value)) {
$value = urlencode($value);
$json = urldecode(json_encode($query));
echo $json;



Microsoft® ODBC Driver 11 for SQL Server® – Windows

Microsoft ODBC Driver For SQL Server 提供從 Windows 到 Microsoft SQL Server 的原生連線能力。


2015.8.29 新增免安裝整合包,下載解壓縮後執行xampp-control 即可運作。