我的本地环境是WAMP。对于几个页面,我必须访问远程托管的 MSSQL 数据库,运行查询并获取结果。
我已获得以下信息(屏蔽值):
我以前从未连接过远程托管的数据库。来自以下位置的示例: http://php.net/manual/en/function.mssql-connect.php
我在测试文件 mssql-connect.php 中尝试了这个:
<?php
// Server in the this format: <computer>\<instance name> or
// <server>,<port> when using a non default port number
$server = '11.22.33.44\abcdefgh';
// Connect to MSSQL
$link = mssql_connect($server, 'db_username', 'db_password');
if (!$link) {
die('Something went wrong while connecting to MSSQL');
}
?>
我不知何故无法连接。我尝试了连接字符串的所有变体:
$server = '11.22.33.44/abcdefgh';
$server = 'http://11.22.33.44\abcdefgh';
$server = 'https://11.22.33.44\abcdefgh';
$server = '11.22.33.44';
$server = '11.22.33.44:1431';
$server = '11.22.33.44,1431';
其中每一个(及其变体)都会返回“连接到 MSSQL 时出现问题”。
我已经通过php.ini启用了mssql,并且可以在phpinfo中看到它。是否有任何额外的字符串需要传递?
首先,不要在此处提供对数据库的完全访问权限(除非您的用户和密码只是占位符)。 其次,您必须确保运行 SQL 的主机已启用远程访问。如果你的MSSQL服务器没有启用远程访问,无论你如何尝试连接,你总是会失败。
$server = '11.22.33.44';
// Connect to MSSQL
$link = mssql_connect($server, 'db_username', 'db_password');
上面的代码应该可以工作,唯一的事情是mssql不允许远程配置,因此它会阻止对你的IP的访问。你必须启用mssql才能远程访问
经过一番尝试后,我遇到了同样的问题,我终于使用 sqlsrv_query() 连接了
不确定是否是因为PHP版本更新或者什么原因。
对此进行一些研究,它对我有用。
您可以成功连接该代码。
$username ="WRITEUSER";
$password = "WRITEPASS";
$database = "WRITEDB";
$server = "WRITESERVERIP";
$connection = mssql_connect($server, $username, $password);
if (!$connection) { die('Not connected : ' . mssql_get_last_message());}
$db_selected = mssql_select_db($databaseb, $connection);
if (!$db_selected) {
die ('Can\'t use db : ' . mssql_get_last_message());
} else{
// Success
}
问候。
要远程连接数据库,您必须在 phpmyadmin 中创建用户帐户并授予该用户帐户权限。远程连接到数据库时,使用您在创建用户帐户时指定的用户名和密码信息。