Сервер SQL — PHP mssql_affered_rows vs mssql_rows_affered

Я использую PHP 5.4.24 с Microsoft SQL Server 2008r2, как в Windows, так и в Linux.
В Linux я использую freetds-0.91-clean.
В Windows в phpinfo () расширение mssql говорит: «Версия библиотеки: FreeTDS»

Функция mssql_affered_rows:

  • Работает на Linux, но не на Windows
  • Совместим с другими базами данных (например, sybase_affered_rows, mysql_acted_rows, pg_affered_rows)
  • Не документировано на www.php.net

Функция mssql_rows_affered:

  • Работает на Windows, но не на Linux
  • Не согласуется с другими базами данных (например, sybase_affered_rows, mysql_affered_rows, pg_affered_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

1

Решение

PHP несовместим во многих отношениях, кто-то сказал, что у него «фрактальный плохой дизайн», и это правда… в каждом аспекте, и обновление все больше и больше не дает результатов.

Для меня и многих других порядок иголки / стога сена в функциях раздражает без IDE или, по крайней мере, хорошего редактора, как notepad ++ / ST

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

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]