为了账号安全,请及时绑定邮箱和手机立即绑定

我的 PHP SQL Server 连接在浏览器中不起作用

我的 PHP SQL Server 连接在浏览器中不起作用

PHP
MYYA 2022-12-23 10:07:12
这是我的第一个问题,所以我尽力向您描述我的问题,谢谢。我使用 sqlsrv 库开发了一个 PHP 脚本,以使用 SSH 在 Ubuntu (18.04) 服务器中使用私有 IP 连接到 SQL Server,我安装了该库工作所必需的 .so 并修改我的 php.ini 以识别它。我在控制台中运行我的 PHP 代码,它工作得很好,它会抛出错误并正确获取数据。现在我正在尝试集成这个脚本来制作一个可以连接到 SQL Server 并获取登录过程数据的网页,我已经多次开发网页的这一部分但是这是第一个在SQL服务器。我会告诉你我的代码:<?phpclass Db {  private $servername;  private $username;  private $password;  private $dbname;  private $conn;  function __construct($server, $user, $pass, $db) {    $this->servername = $server;    $this->username = $user;    $this->password = $pass;    $this->dbname = $db;    $this->conn = false;  }  public function connect() {    $connectionInfo = array("Database"=>$this->dbname, "UID"=>$this->username, "PWD"=>$this->password);    echo $this->conn;    $this->conn = sqlsrv_connect($this->servername, $connectionInfo);    echo "sqlsrv_connect realizado\n";    if($this->conn === FALSE) {      echo "Conexión no se pudo establecer\n";      die( print_r( sqlsrv_errors(), true));    }  }  public function loginPass($email) {    echo "Funcion accedidad\n";    $this->connect();    echo "Conexión realizada\n";    $sql = "SELECT pass FROM Users WHERE email = '{$email}'";    $query = sqlsrv_query($this->conn, $sql);    echo "Query realizado\n";    if($query === FALSE)      die( print_r( sqlsrv_errors(), true));    if( sqlsrv_fetch( $query ) === false)       die( print_r( sqlsrv_errors(), true));    echo "Logica realizada\n";    return sqlsrv_get_field($query, 0);  }}?>而这一个更简化了 SQL 连接的实现:<?php$serverName = "localhost"; //serverName\instanceName$connectionInfo = array( "Database"=>"name", "UID"=>"user", "PWD"=>"pass");$conn = sqlsrv_connect( $serverName, $connectionInfo);任何一个代码都可以由控制台执行,但不能用于 bowser 执行。在第一个代码中,我调用了 LoginPass 函数,但它在调用 connect() 时停止工作,更具体地说是在这一行中:$this->conn = sqlsrv_connect($this->servername, $connectionInfo);它不会给我一个错误,它只是停止执行并在该行之后做任何事情。我尝试使用chmod更改文件的权限,并使用chown将用户更改为www-data ,但我得到了相同的结果。我也在我的个人电脑(Ubuntu 18.04)上运行它,但也不起作用(Firefox 浏览器)。¿这个问题是因为SQL配置吗?
查看完整描述

1 回答

?
一只斗牛犬

TA贡献1784条经验 获得超2个赞

我通过重新安装 sqlsrv 驱动程序来修复,按照 Microsoft 的说明从这里开始:https ://learn.microsoft.com/en-us/sql/connect/php/installation-tutorial-linux-mac?view=sql-server-ver15即使您已经安装了该组件,也请按照所有步骤操作,这就是我可以使用任何浏览器修复与 SQL 服务器的连接的方法。



查看完整回答
反对 回复 2022-12-23
  • 1 回答
  • 0 关注
  • 72 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信