2011-03-12 71 views
0

基本上我想對圖像的路徑存儲到數據庫中使PDO保留反斜槓

例子:我要救'C:\wampp\www\project\images'到數據庫

相反PDO刪除所有反斜槓並使其成爲'C:wamppwwwprojectimages'

有沒有辦法讓Pdo保留反斜槓?

更新,代碼:

$sql = "INSERT INTO meal (pic_path) VALUES('C:\wamp\www\project')"; 
$db = new PDO($dsn, $username, $password); 
$stmt = $db->prepare($sql); 
$stmt->execute(); 
+0

你能告訴我們一些關於如何插入和檢索數據的代碼嗎? – 2011-03-12 00:43:32

+0

@tim更新了代碼 – slier 2011-03-12 00:58:31

回答

3

發生這種情況的原因是因爲您在查詢周圍使用了雙引號("),並且由於反斜槓(\)是轉義字符,因此將被刪除。您可以通過將兩個反斜槓放在一起來解決此問題,以便產生一個(C:\\wamp\\www\\project)。

但是,將它作爲參數傳遞給prepare會是一個更好的主意,您可以保留雙引號。

$directory = "C:\wamp\www\project"; 

$sql = "INSERT INTO meal (pic_path) VALUES(?)"; 
$db = new PDO($dsn, $username, $password); 
$stmt = $db->prepare($sql); 
$stmt->execute(array($directory)); 

瞭解更多about prepared statements

1

你應該使用PDO的變量替換到安全值插入到數據庫中。要編輯您的代碼,它看起來像這樣:

$sql = "INSERT INTO meal (pic_path) VALUES(?)"; 
$db = new PDO($dsn, $username, $password); 
$stmt = $db->prepare($sql); 
$stmt->execute(array('C:\wamp\www\project')); 

PDO將取代?在你的查詢中使用你傳遞的字符串的轉義版本。