hexblot / mssql-compat
为PDO提供的一个小封装,模拟已弃用的mssql_*函数,允许旧版软件在PHP7+中工作
v0.2.2
2017-08-11 11:17 UTC
Requires
- php: >=7.0.0
- ext-pdo: *
Suggests
- ext-pdo_dblib: *
Conflicts
- ext-mssql: *
This package is not auto-updated.
Last update: 2024-09-29 04:49:22 UTC
README
MSSQL Compat是一个小巧简单的库,允许您的旧版7 PHP项目(使用mssql_*函数通过MSSQL,例如mssql_connect()等)通过提供类似PDO语法的包装函数来透明地使用PDO DBLib - 所有这些都只需一行代码!
故事
我最近开始将内部Web应用程序迁移到使用PHP7的新服务器。
因此,我遇到了几个使用MSSQL与PHP结合的老旧应用程序,我非常希望避免重写和调试,因为PHP7已弃用mssql_*函数族。
结果是 这个单文件解决方案:只需在您的第一个mssql_*调用之前包含它,它就会透明地将其包装成等价的PDO调用。
这不是什么
- 这个库在任何意义上都不是安全增强。它假设您的程序逻辑已经对需要转义的内容进行了转义,因为不改变函数语法,您无法从PDO的优点中受益。
- 话虽如此,如果您能提供更好的安全性代码,请让我知道。
- 它不打算作为在PHP7中使用mssql_*函数开发新软件的手段 - 使用PDO或类似工具!
需求
MSSQL-Compat需要PHP7的最低要求,以便与MSSQL通信 - 也就是说
如何使用
选项A:手动
只需下载并将此库包含到旧应用程序的顶部index.php
文件中。
<?php include("path/to/mssql_compat.php"); # Insert old application logic here
选项B:通过Composer
$ composer require hexblot/mssql-compat
如果您的应用程序还没有,请在index.php
中添加对由Composer生成的autoload.php
文件的require语句。
<?php require __DIR__.'/path/to/vendor/autoload.php';
底层:哪些函数被覆盖
以下是当前覆盖的函数列表。这些对于我的需求来说是足够的,但您的项目可能需要更多。请在问题中告诉我 - 补丁当然非常欢迎!
- mssql_bind
- mssql_close
- mssql_connect
- mssql_data_seek
- mssql_execute
- mssql_fetch_array
- mssql_fetch_assoc
- mssql_fetch_batch
- mssql_fetch_field
- mssql_fetch_object
- mssql_fetch_row
- mssql_field_length
- mssql_field_name
- mssql_field_seek
- mssql_field_type
- mssql_free_result
- mssql_free_statement
- mssql_get_last_message
- mssql_guid_string
- mssql_init
- mssql_min_error_severity 注意:仅用作占位符以避免错误!
- mssql_min_message_severity 注意:仅用作占位符以避免错误!
- mssql_next_result
- mssql_num_fields
- mssql_num_rows
- mssql_pconnect
- mssql_query
- mssql_result
- mssql_rows_affected
- mssql_select_db