[英]Creating a real_escape_string() method for systems with magic quotes enabled
我正在學習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);
}
}
在這種情況下,使用靜態方法更有意義嗎? 如果是這樣,如何將其重寫為靜態方法?如果不是,那么為什么呢?
自PHP 5.3起,魔術引號已棄用,並在5.4中刪除。 我建議以正確的方式學習php
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.