Предполагая, что моя база данных настроена следующим образом, чтобы использовать utf-8 (полная версия 4mb в mysql)
mysql_query("SET CHARACTER SET utf8mb4");
mysql_query("SET NAMES utf8mb4");
Я использую mysql_real_escape_string для удаления нежелательных символов перед тем, как поместить строку в sql (примечание - я не ищу совета для переключения на PDO, я хочу установить, является ли mysql_real_escape_string безопасным с помощью overlong utf8 и т.д.).
$input = mysql_real_escape_string($_POST['field']);
$sql = "SELECT * FROM `table` WHERE `header`='$input'";
Есть ли какая-либо проверка, которую мне нужно сделать для $_POST ['field'] (например, чтобы проверить правильность строки UTF-8 и не перекрывается и не содержит недопустимых последовательностей и т.д.), прежде чем делать mysql_real_escape_string или это достаточно?