Защищает ли этот код от SQL-инъекций?
$where = "(color = '$color' AND flavor = '$flavor') OR (quality = '$quality' AND price = '$price')";
$this->db->where($where);
$result = $this->db->get('fruits');
Основано на Codeigniter Docs как говорится.
$ this-> db-> where () принимает необязательный третий параметр.Если вы установите значение FALSE, CodeIgniter не будет пытаться защитить ваши имена полей или таблиц.
$this->db->where('MATCH (field) AGAINST ("value")', NULL, FALSE);
Правильно ли изменить предыдущее выражение на это?
$where = "(color = '$color' AND flavor = '$flavor') OR (quality = '$quality' AND price = '$price')";
$this->db->where($where, NULL, TRUE);
$result = $this->db->get('fruits');
IЯ немного потерян или я должен использовать это.
$array = array('color' => $color,
'flavor' => $flavor,
'quality' => $quality,
'price' => $price);
$where = "(color = ? AND flavor = ?) OR (quality = ? AND price = ?)";
$this->db->where($where, $array, TRUE);
$result = $this->db->get('fruits');