PHP mssql_affected_rows vs mssql_rows_affected


PHP mssql_affected_rows vs mssql_rows_affected

我在Windows和Linux上使用PHP 5.4.24和Microsoft SQL Server 2008r2。在Linux上,我使用freetds-0.91-clean。在Windows上,在phpinfo()中,mssql扩展名说"库版本:FreeTDS"

该函数mssql_affected_rows:

  • 适用于 Linux,但不适用于 Windows
  • 与其他数据库(例如sybase_affected_rows、mysql_affected_rows pg_affected_rows)一致
  • 未记录在 www.php.net

该函数mssql_rows_affected:

  • 适用于Windows,但不适用于Linux
  • 与其他数据库不一致(例如sybase_affected_rows、mysql_affected_rows pg_affected_rows)
  • 记录在 www.php.net

为什么是这两个名字?这使得很难在两个系统上运行相同的代码。

对于未来的读者,这是我编写的包装器,适用于这两种情况:

function GetAffectedRows()
    {
    if ( function_exists( 'mssql_affected_rows' ) )
        return mssql_affected_rows( $Conn ) ;
    else
        return mssql_rows_affected( $Conn ) ;
    }

参考:http://php.net/manual-lookup.php?pattern=mssql_affected_rows

PHP 在

很多方面都不一致,有人说它有一个"分形糟糕的设计",这是真的......在各个方面和更新越来越多的失败。

对于我和许多其他人来说,如果没有 IDE 或至少像记事本++/ST 这样的好编辑器,函数中的针/大海捞针的顺序令人恼火

http://eev.ee/blog/2012/04/09/php-a-fractal-of-bad-design/