Есть ли способ сделать параметризованные запросы в PHP 4 при использовании базы данных MSSQL? - PullRequest
1 голос
/ 24 апреля 2009

Я выполняю некоторые работы по обслуживанию старой системы, которая работает под управлением PHP 4 и общается с базой данных MS SQL2000 через FreeTDS. Я знаю, это уже звучит несколько страшно!

Большая часть кода использовала небезопасную конкатенацию строк для генерации запросов SQL. Я проделал некоторую работу, чтобы попытаться отфильтровать ввод, чтобы сделать вещи более безопасными, но это вызывает у меня головную боль.

Мне интересно, есть ли что-то, что позволило бы мне выполнять правильные параметризованные запросы, учитывая мои текущие настройки? На данный момент я не могу изменить версии PHP или MSSQL.

Ответы [ 2 ]

1 голос
/ 24 апреля 2009

Если ваш основной интерес к параметризованным запросам связан с безопасностью SQL-инъекций, я бы искал слой абстракции базы данных, который предоставляет вам функциональность и написан на чистом PHP. Я использовал ADOdb , и это неплохой вариант, и, похоже, у них все еще есть более старая версия PHP4, доступная для скачивания.

Единственное предостережение об этом - уровень абстракции может не выполнять "правильные" параметризованные запросы с вашей базой данных. Другими словами, они могли реализовать свой собственный механизм параметризации, а затем отправлять полные строки SQL в базу данных. Это важно для MS SQL Server, поскольку «правильные» параметризованные запросы могут значительно повысить производительность.

1 голос
/ 24 апреля 2009

Используйте слой абстракции базы данных, например MDB2 , который предоставляет им .

...