1. Проверка всех входных и выходных данных - только Regexp по "белому" списку.
Иначе говоря - принимаем только ожидаемые значения.
preg_match();
Используем те же правила проверки (js+regex) на клиентской стороне сайта (в браузере) перед отправкой данных на сервер.
2. Закрываем соединение с базой только тогда, когда оно уже более не нужно для текущего исполнения PHP-скрипта до конца его работы. обычно, соединение к базе закрывается перед началом формирования страницы по шаблону. Можно закрывать ещё точнее: после завершения работы последнего запроса из последнего модуля списка всех модулей, участвующих в работе с данными в базе.
И на последок маленькая, но ОЧЕНЬ! полезная функция собственного производства:
function validfilter($value,$regexp,$flags='usi') {
if (preg_match('/'.$regexp.'/'.$flags, $value,$result) && $result[0]===$value)
return $value;
else return false;
}