【发布时间】:2012-12-07 15:13:46
【问题描述】:
尝试使用php's 标准mssql_select_db 函数选择数据库时出现以下错误:USE statement is not supported to switch between databases. Use a new connection to connect to a different Database. (severity 16)。所以我很困惑从这里去哪里。
连接代码:
$link = mssql_connect('dsn', 'user@server', 'password');
if (!$link) {
die('Unable to connect!');
}
if (!mssql_select_db('db', $link)) {
die('Unable to select database!');
}
$result = mssql_query('SELECT * FROM yourtable');
while ($row = mssql_fetch_array($result)) {
var_dump($row);
}
我的系统设置如下:
- Ubuntu 12.10
- PHP5
- Apache2
- 免费TDS
- unixODBC
- SQL Azure
我也在关注这个guide。
【问题讨论】:
-
您要发送到数据库的 SQL 语句是什么?
-
只是一个简单的列表。
SELECT * FROM someTbl -
您是否在同一个连接(教程中的
$link变量)上以不同的数据库名称多次调用mssql_select_db? -
不。除了填写我的凭据以正确连接之外,我使用的脚本与上面列出的指南中给出的完全相同。
-
我自己没有使用Azure的经验,但是错误信息很清楚:you can't change databases with
USEin SQL Azure。我不知道如何或是否可以阻止您的特定客户端库发出USE命令,但我会尝试完全删除mssql_select_db()调用并在您的ODBC DSN 中指定正确的数据库名称。希望这能将您直接连接到您要使用的数据库。
标签: php sql-server azure-sql-database freetds ubuntu-12.10