Ответ 1
Нет, вам не нужно самостоятельно избегать значения (т.е. вам не нужно вызывать mysqli_real_escape_string
), когда вы используете подготовленные операторы: механизм БД сделает это сам.
(На самом деле, если вы вызывали mysql_real_escape_string
и использовали связанные параметры, ваши строки могли бы получить экранирование дважды - что бы не было замечательно: вы в конечном итоге избегаете символов везде...)
В качестве побочного элемента: ваши значения передаются как целые числа (как указано в 'ii'
), поэтому вам не нужно было бы вызывать mysql_real_escape_string
, даже если вы не использовали подготовленные операторы: по мере того, как его имя указывает, эта функция используется чтобы избежать... строк.
Для целых чисел я обычно просто использую intval
, чтобы убедиться, что данные, которые я вставляю в мои SQL-запросы, действительно являются целыми числами.
(Но, поскольку вы используете подготовленные запросы, еще раз вам не нужно делать этого, чтобы ускользнуть самостоятельно)