使用PHP连接远程MSSQL数据库

问题描述 投票:0回答:5

我的本地环境是WAMP。对于几个页面,我必须访问远程托管的 MSSQL 数据库,运行查询并获取结果。

我已获得以下信息(屏蔽值):

  • 远程MSSQL机器的IP地址:11.22.33.44
  • 数据库名称:abcdefgh
  • 用户名:db_用户名
  • 密码:db_password

我以前从未连接过远程托管的数据库。来自以下位置的示例: 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中看到它。是否有任何额外的字符串需要传递?

php sql-server remote-access
5个回答
0
投票

首先,不要在此处提供对数据库的完全访问权限(除非您的用户和密码只是占位符)。 其次,您必须确保运行 SQL 的主机已启用远程访问。如果你的MSSQL服务器没有启用远程访问,无论你如何尝试连接,你总是会失败。


0
投票
       $server = '11.22.33.44';
      // Connect to MSSQL
      $link = mssql_connect($server, 'db_username', 'db_password');

上面的代码应该可以工作,唯一的事情是mssql不允许远程配置,因此它会阻止对你的IP的访问。你必须启用mssql才能远程访问


0
投票

经过一番尝试后,我遇到了同样的问题,我终于使用 sqlsrv_query() 连接了

不确定是否是因为PHP版本更新或者什么原因。

对此进行一些研究,它对我有用。


0
投票

您可以成功连接该代码。

$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
}

问候。


-1
投票

要远程连接数据库,您必须在 phpmyadmin 中创建用户帐户并授予该用户帐户权限。远程连接到数据库时,使用您在创建用户帐户时指定的用户名和密码信息。

© www.soinside.com 2019 - 2024. All rights reserved.