php - 从 Ubuntu 和 PHP 访问 Azure MSSQL 服务器

标签 php sql-server t-sql ubuntu azure

解决了几个初始错误后,我能够连接到服务器。我的问题是我似乎无法访问这些表。

这是 freetds.conf 文件:

[azure]
host = name.database.windows.net
port = 1433
tds version = 8.0
database = databasename

这是我的 PHP 文件:

ini_set('display_errors', 1);
# Older FreeTDS installations need the FREETDSCONF Environment variable
putenv('FREETDSCONF=/etc/freetds.conf');
# Current release of FreeTDS uses the FREETDS environment variable. So we set both to be sure
putenv('FREETDS=/etc/freetds.conf');

$server = 'azure';
$link = mssql_connect($server, 'username@name', 'password');

if (!$link) {
    die('<br/><br/>Something went wrong while connecting to MSSQL');
}
else {

$query_result = mssql_query('SELECT * FROM information_schema.tables');

echo "<pre>";
while($row = mssql_fetch_array($query_result)){
    print_r($row).'<br/>';
}
echo "</pre>";

mssql_free_result($query_result);
mssql_close($link);
}

这在浏览器上向我显示以下内容:

Array
(
[0] => master
[TABLE_CATALOG] => master
[1] => dbo
[TABLE_SCHEMA] => dbo
[2] => slo_service_dimensions
[TABLE_NAME] => slo_service_dimensions
[3] => VIEW
[TABLE_TYPE] => VIEW
)
Array
(
[0] => master
[TABLE_CATALOG] => master
[1] => dbo
[TABLE_SCHEMA] => dbo
[2] => slo_dimension_settings
[TABLE_NAME] => slo_dimension_settings
[3] => VIEW
[TABLE_TYPE] => VIEW
)

还有更多。但我的实际 table 一无所知。现在,如果我将 PHP 更改为:

$result = mssql_query('select Email from Profile');
while($row = mssql_fetch_array($result))
echo $row["Email"] .'<br/>';

我在浏览器中得到以下内容:

Warning: mssql_query(): message: Invalid object name 'Profile'. (severity 16) in file.php on line 23
Warning: mssql_query(): General SQL Server error: Check messages from the SQL Server (severity 16) in file.php on line 23
Warning: mssql_query(): Query failed in file.php on line 23
Warning: mssql_fetch_array() expects parameter 1 to be resource, boolean given in file.php on line 25

如果我将查询更改为:

,也会发生同样的情况
$result = mssql_query('select Email from dbo.Profile');

有什么想法吗?

最佳答案

错误“对象名称‘配置文件’无效”表示正在建立连接并且登录成功。确保您登录的用户对配置文件表拥有适当的权限,而不仅仅是服务器。您可能需要将用户添加到数据读取器角色。

关于php - 从 Ubuntu 和 PHP 访问 Azure MSSQL 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19719566/

相关文章:

php - MYSQL 混淆日期

php - 日期显示为 1969-12-31 的选项菜单

sql - 为什么这个查询不起作用?

sql - 按数字顺序排列字符串 alpha A1-1-1、A1-2-1、A1-10-1、A1-2-2、A1-2-3 等

sql - 以所需格式格式化结果集时出现问题

php - Symfony 查询生成器将所有结果添加到结果集中

php - 国际化验证

sql-server - 更改在 SQL Server 2008 R2 中复制的表

sql - 整洁的 SQL

sql-server - 是否有工具可以检查 varchar 数据并建议合适的数据类型?