1

有人将 phpGrib 与 PHP 7.3 和 MS-SQL-Sever 一起使用?如果是,我有问题,也许有人可以救我。我有这个错误:

{ 警告:使用未定义的常量 ODBC_BINMODE_RETURN - 假定在线 C:\Apache24\localhost***\phpGrid_Lite\server\adodb5\adodb.inc.php 中的 'ODBC_BINMODE_RETURN'(这将在 PHP 的未来版本中引发错误) 4771

警告:在第 4771 行的 C:\Apache24\localhost***\phpGrid_Lite\server\adodb5\adodb.inc.php 中使用未定义的常量 SQL_CUR_USE_DRIVER - 假定为“SQL_CUR_USE_DRIVER”(这将在 PHP 的未来版本中引发错误) }

我已经看过这个页面https://phpgrid.uservoice.com/knowledgebase/articles/314967-undefined-constant-odbc-binmode-return-and-sql-cur这是没用的,因为我已经有 PHP7.3 的驱动程序和MS-SQL-Server 当我用 PDO 连接到数据库时,我卸载,再次安装驱动程序,它什么也没改变(当然我重置了 Apache)

这里是 phpGrid 推荐的代码:

define('PHPGRID_DB_HOSTNAME','localhost'); // database host name
define('PHPGRID_DB_USERNAME', '###');     // database user name
define('PHPGRID_DB_PASSWORD', '###'); // database password
define('PHPGRID_DB_NAME', '###'); // database name
define('PHPGRID_DB_TYPE', 'odbc_mssql_native');  // database type
define('PHPGRID_DB_CHARSET','utf8');

我有字符串而不是###,它们在这里只是用于掩码数据另外,当我通过没有 phpGrid 的 PDO 连接到数据库时,我没有问题,然后我尝试更改

define('PHPGRID_DB_TYPE', 'odbc_mssql_native');

经过

define('PHPGRID_DB_TYPE', 'sqlsrv');

然后我有错误:

警告:mysqli_real_connect(): (HY000/2002): 由于目标机器主动拒绝,无法建立连接。在 C:\Apache24\localhost***\phpGrid_Lite\server\adodb5\drivers\adodb-mysqli.inc.php 第 124 行错误:无法连接到数据库

看起来像 mysql 一样需要 sqlsrv。

然后我尝试

define('PHPGRID_DB_TYPE', 'mssqlnative');

因为这次它使用 adodb 并且谨慎,所以我遇到了超级有用的错误:

错误:无法连接到数据库

有人有想法或解决方案吗?我没有其他想法,例如必须自己完成所有 DataGrid :( 但会更长。

4

1 回答 1

1

首先,您应该检查您的服务器上是否安装了以下驱动程序的最新版本:

来自 Microsoft 的 ODBC 驱动程序 (v17):

https://www.microsoft.com/en-us/download/details.aspx?id=56567

适用于 PHP 7.3 的 SQLSRV v5.50。这只是一个预览(但官方)5.50 版本:

https://github.com/Microsoft/msphpsql/releases/tag/v5.5.0-preview

请注意,调用扩展的方式在 PHP7.3 中发生了变化。然后,您必须php.ini使用以下精确名称启用两个 .DLL :

extension=pdo_sqlsrv_73_ts_x64
extension=sqlsrv_73_ts_x64
于 2019-01-31T10:28:41.033 回答