Лучший способ избежать SQL-инъекции для определенного типа значений, такого как числа, – проверить значение; так как это проще сделать по сравнению с подготовкой mysqli. В PHP мы можем это сделать.
1. if(!is_numeric($value)) {$value=0;} 2. $value=floatval($value); 3. $value=intval($value); 4. $value=$value * 1;
Что является самым надежным? или лучшая идея?
ОБНОВЛЕНИЕ: Несмотря на то, что я сказал в исходном вопросе, большинство людей подчеркнули полезность параметризованных запросов. Определенно, это самый эффективный способ избежать SQL-инъекции. Но когда мы можем просто проверить целочисленное числовое значение; ИМХО, нет необходимости в параметризации.