【问题标题】:How do I get mssql_connect to work using PHP7?如何让 mssql_connect 使用 PHP7 工作?
【发布时间】:2016-04-18 12:09:57
【问题描述】:

在使用 PHP7 将 Web 应用程序移植到服务器时,我遇到了一个问题:我无法让 mssql_connect 工作。我发现 mssql 在 PHP7 上还不能工作(或永远不会工作)。

在 Ubuntu(Nginx、php-fpm)上使用 PHP7 连接到 MSSQL 的最快方法是什么?

【问题讨论】:

  • PDO 连接怎么样?
  • 来自php manual:这个函数在 PHP 7.0.0 中被移除。此功能的替代方案包括:PDO::__construct()sqlsrv_connect()odbc_connect()
  • 上述解决方案有人确认了吗?
  • 我也有同样的困境。 PDO 不能与 Stored Proc 一起正常工作。我更喜欢 PDO。想升级到 php 7 但这是个大问题。我想我将不得不尝试让 dblib 与存储的过程一起工作。
  • 也许你会告诉我RTCA[阅读上面的评论];但是有没有人想出如何保留 PHP7.0,并将旧代码与 mssql_connect、mssql_query 和 mssql_fetch_array 一起使用?

标签: php ubuntu php-7


【解决方案1】:

连接功能不再是mssql_connect()。自 php 5.3 以来,它已被弃用。现在在 php 7 上,这个旧函数消失了。不过不用担心 ;) 现在您可以改用 sqlsrv_connect() 函数。

请记住,在新方法中,您需要正确设置参数。有一些差异。下面是一个小例子。

<?php
$serverName = "serverName\sqlexpress, 1542"; //serverName\instanceName, portNumber (1433 by default)
$connectionInfo = array( "Database"=>"dbName", "UID"=>"userName", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);

if( $conn ) {
     echo "Successfuly connected.<br />";
}else{
     echo "Connection error.<br />";
     die( print_r( sqlsrv_errors(), true));
}
?>

这个答案对你来说可能有点晚了,但我希望对某人来说还不算太晚。

【讨论】:

  • 为什么是sqlsrv_connect?为什么不pdomysqli
  • sqlsrv_connect 仅适用于 Windows。他问“在 Ubuntu (Nginx, php-fpm) 上使用 PHP7 的 MSSQL”
  • sqlsrv_connect 目前适用于我 - Ubuntu 16.04.1 和 PHP 版本 7.0.30-0,安装了 freeTDS。并且安装了 msSQL ODBC“sqlsrv”。 SQL 服务器版本是 Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (X64)。
  • sqlsrv 仅在还安装了 ODBC 驱动程序的情况下才有效,那么为什么直接在 FreeTDS ODBC 上使用它呢?
【解决方案2】:

1.sudo apt-get update install php-sybase

2.

$dsn= 'dblib:host=youIP:1433;dbname=XXX;';
$dbusername="sa";
$dbpassword="XXXX";
try
{
    $mspdo = new PDO($dsn,$dbusername,$dbpassword);
    $mspdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
}
catch(PDOException $pe)
{
    die("database connect error:". $pe->getMessage());
}

【讨论】:

  • PHP7没有sybase支持
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-09
相关资源
最近更新 更多