我正在尝试使用 PHP 的 PDO 连接到 Microsoft SQL Server / Microsoft Azure 数据库:
<?php
// no actual login data, but similar string lengths
$dbHost = 'aa1234bbb5.database.windows.net';
$dbUser = 'db_a1a1a1a1_b2b2_c3c3_d4d4_e5e5e5e5e5e5_ExternalWriter';
$dbPass = 'pPAs0wOoO1&r#dd';
$dbName = 'db_a1a1a1a1_b2b2_c3c3_d4d4_e5e5e5e5e5e5';
try {
$pdo = new PDO("dblib:host=$dbHost:1433;dbname=$dbName", $dbUser, $dbPass);
} catch (PDOException $e) {
echo "Failed to get DB handle: " . $e->getMessage() . "\n";
exit;
}
PDO 初始化会引发带有以下消息的 PDOException:
SQLSTATE[HY000] Name too long for LOGINREC field (severity 2)
我在 Debian 7.7 x64 上运行 PHP 5.4.41-0+deb7u1。
我的问题归结为:
- 为什么我会收到此错误消息?
- 我应该如何实际连接到数据库?
注意:我无法更改登录数据,因为我需要访问 Microsoft Access Web App 的后端数据库。如果您创建这样的 Web 应用程序,Microsoft 会在其“公开可用”的 Azure 服务器之一上创建数据库。您可以要求服务器为您提供用户名和密码 - 但不幸的是,您必须使用提供给您的任何内容。

