2011-10-27 37 views

回答

1

您需要一個連接,因爲轉義變量的概念只有在數據庫連接的上下文中才有意義,而且它們將被轉義。不同的字符可能會有不同的解釋,比如說MySQL和PostgreSQL,或者取決於連接的字符集。因此,在真空中談論逃避變量是沒有意義的,你需要一些關於如何解釋結果字符串的概念。

也許你可以使用別的東西作爲memcached的關鍵。

+0

我知道在真空中談論逃避是沒有意義的,但是爲了引用而引用數據庫的連接似乎是一種矯枉過正。我知道它需要db參數,但這些都在PDO構造函數中。我正在使用postgresql ...我想我會在連接尚未創建時使用自定義引用 –

1

由於PDO是一個抽象層,每個數據庫的引用方法都不相同。 PDO必須知道您將使用的WHICH數據庫才能使用正確的引用/轉義API調用。

0

如果您知道將與SQL配合使用的驅動程序,只需編寫您自己的函數,例如,

/** 
* @param {string|int|null} $data 
* @return string 
*/ 
function quote ($data) { 
    if (is_float($data) || is_int($data)) { 
     return $data; 
    } else if (is_string($data)) { 
     return '\'' . addslashes($data) . '\''; 
    } else if ($data) { 
     throw new Exception('Invalid data type.'); 
    } else { 
     return 'NULL'; 
    } 
} 

一個示例用例:您有一個CLI程序用於生成稍後由另一個程序執行的SQL代碼。在這種情況下,建立MySQL連接是多餘的,可能是不需要的。

相關問題