Создание метода real_escape_string () для систем с включенными магическими кавычками

В книге, из которой я изучаю PHP, говорится, что для того, чтобы люди не могли использовать такие вещи, как кавычки, для изменения запроса, вы должны использовать функцию real_escape_string. Затем автор продолжает, что в некоторых старых системах, где включены магические кавычки, использование real_escape_string может в конечном итоге удваивать экранирование некоторых символов, поэтому он создает эту функцию:

<?php
function mysql_fix_string($conn, $string) {
if (get_magic_quotes_gpc()) $string = stripslashes($string);
return $conn->real_escape_string($string);
}
?>

Было бы хорошо, чтобы превратить это в метод в расширенном классе класса mysqli? (Нет никакой реальной причины, почему я хотел, кроме того, что я хотел передать как можно меньше аргументов.)

Если это так, это правильный способ сделать это?

class mysqli_extended extends mysqli {
public function fix_string($string) {
if(get_magic_quotes_gpc()) {
$string = stripslashes($string);
}
return $this->real_escape_string($string);
}
}

И это ситуация, когда статический метод имеет больше смысла? Если да, то как его можно переписать как статический метод, а если нет, то почему?


Так как я только что задал миллион вопросов, я выложу их резюме здесь:

  1. Можно ли создать метод для этой цели? (Есть ли недостатки в этом?)
  2. Является ли приведенный выше код правильным способом сделать это?
  3. Это должен быть статический метод?
  4. Как бы вы сделали это статическим методом?

0

Решение

Магические кавычки устарели с php 5.3 и удалены в 5.4. рекомендую учить PHP правильно

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]