hexblot/mssql-compat

为PDO提供的一个小封装,模拟已弃用的mssql_*函数,允许旧版软件在PHP7+中工作

v0.2.2 2017-08-11 11:17 UTC

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通信 - 也就是说

提示:所有这些都可以通过如IUSRemi之类的仓库轻松使用。

如何使用

选项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