0

过去,我使用 MSSQL 函数设置了与 MSSQL 的连接。我有一个运行 php 5.5 的旧站点(客户端拒绝升级),遗憾的是功能丢失了(它可以工作但现在不行)

我尝试使用下面的脚本重新安装,但仍然无法让模块在执行时显示php -m

Download FreeTDS
Latest stable version can be found here http://www.ibiblio.org/pub/Linux/ALPHA/freetds/stable/ (

3. Configure and install FreeTDS
Uncompress and cd to the respective folder:

./configure --prefix=/usr/local/freetds
make
make install

4. PHP configuration
Edit the php configuration file.
"/usr/local/directadmin/custombuild/configure/ap2/configure.php55" 
Add this line: "--with mssql=/usr/local/freetds\ " 

Go to custombuild:
./build clean
./build php_expert 5.5 php-fpm

再次,当我这样做时php - m,模块不显示

[root@... domains]# php -m
[PHP Modules]
bcmath
calendar
Core
ctype
curl
date
dom
ereg
exif
fileinfo
filter
ftp
gd
gettext
hash
iconv
intl
json
libxml
mbstring
mcrypt
mhash
mysql
mysqli
mysqlnd
openssl
pcre
PDO
pdo_mysql
pdo_sqlite
Phar
posix
Reflection
session
SimpleXML
soap
sockets
SPL
sqlite3
standard
tokenizer
xml
xmlreader
xmlwriter
xsl
zip
zlib

[Zend Modules]

[root@... domains]#

有什么建议么?

4

1 回答 1

0

我记得mssql函数什么时候死的。这是悲伤的一天,让我很头疼。

我发现最简单的转换是转移到sqlsrv函数。它们的语法和结构几乎相同,只需要进行一些调整。幸运的是,从 IDE 进行文件范围的搜索应该可以相当容易地找到任何mssql命令,并就地“转换”它们。

连接函数有点不同,因为它使用一组参数来指定数据库、用户名、密码等,但这些都是有据可查的,你只需要在你建立连接的地方更改它们(这通常是只在一个地方编码)。但大部分操作功能基本相同。

需要注意的一件事是,sqlsrv它与指针相关的程度比mssql以前更高。您可以使用提供的函数(及其在 php.net 上的示例)调整以推进记录,或者如果您只是将SQLSRV_FETCH_ASSOC常量添加为sqlsrv_fetch_array. 这将使它模拟旧的行为,并消除使用指针相关函数的需要。

$connection = sqlsrv_connect( $server, $connection_info_array );
$results = sqlsrv_query( $connection , $your_query );
while ( $row = sqlsrv_fetch_array( $results, SQLSRV_FETCH_ASSOC ) ) {
var_dump( $row );
}

当我转换自己的代码时,这大大简化了任务。后来,我重建了我的数据库类以使用PDO,但临时举措sqlsrv节省了我当时没有的大量时间。

于 2021-06-09T19:55:41.017 回答