这是我的第一个问题,所以我尽力向您描述我的问题,谢谢。我使用 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 回答
- 0 关注
- 97 浏览
添加回答
举报
0/150
提交
取消