爲什麼兩個函數都會使我失敗?或者這只是一種幻覺?在PHP5中爲SQLite3轉義字符串
<?php
echo sqlite_escape_string('Hello "World" \'\' ...');
echo "\n";
echo SQLite3::escapeString('Hello "World" \'\' ...');
echo "\n";
?>
輸出:
Hello "World" '''' ...
Hello "World" '''' ...
爲什麼兩個函數都會使我失敗?或者這只是一種幻覺?在PHP5中爲SQLite3轉義字符串
<?php
echo sqlite_escape_string('Hello "World" \'\' ...');
echo "\n";
echo SQLite3::escapeString('Hello "World" \'\' ...');
echo "\n";
?>
輸出:
Hello "World" '''' ...
Hello "World" '''' ...
您應該使用PDO訪問數據庫,因爲它有prepared statements這比逃離也快更安全。
PHP的數據對象(PDO)擴展 限定的輕質的,一致的 接口,用於在 PHP訪問數據庫。 實現PDO接口的每個數據庫驅動程序可以將 公開的數據庫特定功能作爲 常規擴展功能。
使用PDO的另一大優點是,您可以輕鬆切換數據庫(例如MySQL vs PostGRESQL vs SQLite),而無需更改大量代碼。
快速介紹如何使用PDO可以在nettuts上讀取。如果你問我,一個很好的閱讀/介紹!
對我來說,確定「失敗」。另外,您可能想嘗試PDO,準備好的語句和參數綁定。 – Phil