php - 无法使用 PHP 和 Codeigniter 从 PHP Azure 连接到 SQL Server Azure

标签 php sql-server codeigniter azure odbc

我正在尝试从 php 应用程序(使用 codeigniter 3)连接到 MSSQL 数据库。

由于 Azure PHP 安装不支持 MSSQL,仅支持 ODBC 连接(我不知道为什么),我的连接参数如下所示:(此示例中的主机名、用户名、数据库和密码被 xxxxx、ddddd、uuuuu、ppppp 覆盖)

$db['default'] = array(
    'dsn'   => @$_SERVER['SQLAZURECONNSTR_ddddd'],
    'hostname' => 'Driver={SQL Server};tcp:xxxxx.database.windows.net,1433;Database=ddddd',
    'username' => 'uuuuuu',
    'password' => 'pppppp',
    'database' => 'ddddd',
    'dbdriver' => 'odbc',
    'dbprefix' => '',
    'pconnect' => FALSE,
    'db_debug' => TRUE,
    'cache_on' => FALSE,
    'cachedir' => '',
    'char_set' => 'utf8',
    'dbcollat' => 'utf8_general_ci',
    'swap_pre' => '',
    'autoinit' => TRUE,
    'stricton' => FALSE,
    'failover' => array(),
    'save_queries' => TRUE
);

但我收到以下错误:

Message: odbc_connect(): SQL error: [Microsoft][ODBC Driver Manager] Data > source name not found and no default driver specified, SQL state IM002 in > SQLConnect

Filename: odbc/odbc_driver.php

我假设 azure php odbc 驱动程序已正确配置为连接到其链接的 mssql 数据库。 - 但我显然错过了一些东西。

最佳答案

默认情况下,Azure 环境不安装 php_mssql.dll 扩展,而是安装 php_sqlsrv.dll相反。

因此,要连接到 SQL Server,我们可以将 'dbdriver' 设置为 'sqlsrv'

application\config\database.php 中的设置应如下所示:

'hostname' => '<server_name>.database.windows.net,1433',
'username' => '<username>',
'password' => '<password>',
'database' => '<database>',
'dbdriver' => 'sqlsrv',
'pconnect' => FALSE,

要使用odbc驱动程序连接SQL Server,我们只需将'hostname'设置为正确的odbc连接字符串即可。我们可以在Azure门户中找到连接字符串。

我尝试重现您的问题, 您似乎在 'dsn' 中设置了错误的值。在我的测试中,我将其设置为空字符串,它对我有用。

关于php - 无法使用 PHP 和 Codeigniter 从 PHP Azure 连接到 SQL Server Azure,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31799160/

相关文章:

php - 转义字符串是什么意思?

sql - 如何查找哪些 View 正在使用 SQL Server (2008) 中的某个表?

sql - 如何从列中获取不同的值?

php - 将 excel 导入多个表 - PHP 和 MYSQL (codeigniter)

javascript - 为什么这个功能不起作用?显示 val 为 null 的错误

php - 未指定输入文件 - apache 和 php-fastcgi

php - 如何使用TCPDF生成PDF417二维条码?

c# - 在 Asp.Net Mvc 6 中创建管理员 super 用户

mysql - CodeIgniter SQL Update 和 Union 在一起?

php - Jquery Ajax 未正确接收 php 响应