DeveloperWorks публикует обзорную статью об изменениях, грядущих в PHP 6
Я бы отметил, в первую очередь, изменение принципа формирования запросов к БД. magic_quotes отменяется. Рекомендованный теперь способ - параметризация запросов (так, кстати, как это делается, например, в JDBC):
<?php
// Using the proper parameterized query method for MySQL, as an example
$statement = $dbh->prepare("INSERT INTO USERS (USERNAME) VALUES ?");
$statement->execute(array($_GET['username']));
?>
И это, конечно, правильно. Во-первых, с SQL injection так можно бороться, во-вторых для подготовленных SQL операторов у системы остается больше возможностей для оптимизации (как курсор, например, это реализовать)
2 comments:
на самом деле параметризированные запросы это не самое главное, кому оно надо давно использовали adodb/mdb2/pdo.
на мой взгляд самое главное - вырезание таких костылей из основного как ereg, safe_mode, register_global, magic_quotes и т.д. - это куча костылей - источник множества ошибок безопасности.
а еще помнится обещался встроенный APC но что-то не усмотрел в файлике NEWS
Параметризация запросов - верный путь, удобен еще тем, что можно одни и те-же параметры использовать для запросов Insert и Updatе: создать хеш с парами поле=>значение, а потом преобразовывать их в SET k1=v1, k2=v2. А в зависимости от типа операции писать INSERT или UPDATE
Post a Comment