2011-06-28 69 views
2

爲什麼兩個函數都會使我失敗?或者這只是一種幻覺?在PHP5中爲SQLite3轉義字符串

<?php 
echo sqlite_escape_string('Hello "World" \'\' ...'); 
echo "\n"; 
echo SQLite3::escapeString('Hello "World" \'\' ...'); 
echo "\n"; 
?> 

輸出:

Hello "World" '''' ... 
Hello "World" '''' ... 
+0

對我來說,確定「失敗」。另外,您可能想嘗試PDO,準備好的語句和參數綁定。 – Phil

回答

4

您應該使用PDO訪問數據庫,因爲它有prepared statements這比逃離也快更安全。

PHP的數據對象(PDO)擴展 限定的輕質的,一致的 接口,用於在 PHP訪問數據庫。 實現PDO接口的每個數據庫驅動程序可以將 公開的數據庫特定功能作爲 常規擴展功能。

使用PDO的另一大優點是,您可以輕鬆切換數據庫(例如MySQL vs PostGRESQL vs SQLite),而無需更改大量代碼。

快速介紹如何使用PDO可以在nettuts上讀取。如果你問我,一個很好的閱讀/介紹!

+0

我以爲SQLite也準備了語句。 – Pwnna

+0

SQLite已經準備好聲明,例如PDO;)。您可以通過PDO使用SQLite。 – Alfred

+1

SQLite 3有escapeString()方法,所以我現在就使用它。 – andude