我尝试设置与我的站点和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?
答案 0 :(得分:3)
错误消息不能比它更具描述性!
您根本无法使用4字符号(即[DB_NAME]。[SCHEMA]。[TABLE_NAME]。[COLUMN]。使用SQL Azure时,您应始终使用3字符号(即[SCHEMA]。[ TABLE]。[COLUMN])。
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(也在如何使用)。