PHP mssql_connect() 到 Azure 数据库

标签 php sql sql-server azure

我尝试设置与我的网站和 mssql 数据库的连接。我可以连接到数据库,但无法执行 SQL 查询。我的代码是

$connection = mssql_connect('jass8l1.database.windows.net', 'username', 'password');
        if (!$connection){
            print_r(mssql_get_last_message());
        }else{

            $res= mssql_query('SELECT * FROM [my_database].[dbo].[table]', $connection);
            print_r(mssql_get_last_message());
            $row = mssql_fetch_array($res);

            echo $row[0];

        }

此代码显示错误

Reference to database and/or server name in 'my_database.dbo.table' is not supported in this version of SQL Server.

但是当我在线执行此查询,链接MANAGE URL时,不会出现此错误。 我怎么解决这个问题?也许我需要一些额外的 PHP 驱动程序?

最佳答案

错误消息不能比它本身更具有描述性!

您根本无法使用 4 字表示法(即 [DB_NAME].[SCHEMA].[TABLE_NAME].[COLUMN]。对于 SQL Azure,您应始终使用 3 字表示法(即 [SCHEMA].[表].[列])。

对于 SQL Azure,您必须在连接中显式设置数据库。您不能在 SQL Azure 中执行USE [DB_NAME]

将 SQL Azure 与 PHP 结合使用时,我建议您浏览 How to: Connect to Windows Azure SQL Database from PHP .

您必须将连接更改为:

  $serverName = "tcp:ProvideServerName.database.windows.net,1433";
   $userName = 'ProvideUserName@ProvideServerName';
   $userPassword = 'ProvidePassword';
   $dbName = "TestDB";
   $table = "tablePHP";

   $connectionInfo = array("Database"=>$dbName, "UID"=>$userName, "PWD"=>$userPassword, "MultipleActiveResultSets"=>true);

   sqlsrv_configure('WarningsReturnAsErrors', 0);
   $conn = sqlsrv_connect( $serverName, $connectionInfo);
   if($conn === false)
   {
     FatalError("Failed to connect...");
   }

此外,强烈建议使用 Microsoft 的 MS SQL 驱动程序,而不是使用标准 PHP 提供的 MSSQL(也在“操作方法”中提到)。

关于PHP mssql_connect() 到 Azure 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19249696/

相关文章:

php - 从响应中删除 header 值

php - 在 WooCommerce 存档页面中的产品标题下方添加自定义字段值

sql - 存储过程可以与两个不同的数据库一起使用吗?两台服务器怎么样?

mysql - 使用窗口函数的 SQL 查询 - 插入和更新输出的超前和滞后

php - 制定一个类似 cron 的时间表

http - php-fpm 每天停止多次

sql - 按月排序 SQL 查询

sql - Oracle 日期格式 - 奇怪的行为

sql-server - 如何在 AWS Glue 中使用 JDBC 连接来连接 SQLServer

sql - 查询具有数据类型位的计数列