我目前正在研究一個圖像上傳腳本,但是在嘗試將圖像的詳細信息存儲到數據庫時遇到了一個小問題。 上傳表單抓取圖像,檢查其詳細信息並獲取圖像的擴展名。這工作正常,但它不會將圖像路徑存儲到數據庫中。存儲到數據庫中 - 問題
這是代碼的有問題的部分:
$file_path = 'images/profile/' . substr(md5(time()), 0, 10) . '.' . $file_extn;
echo $file_path;
try {
$con = new PDO(DB_DSN, DB_USERNAME, DB_PASSWORD);
$con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "UPDATE user SET img=$file_path WHERE userID = $username";
$stmt = $con->prepare($sql);
$stmt->bindValue("file_path", $this->file_path, PDO::PARAM_STR);
$stmt->execute();
if ($stmt->rowCount() > 0) {
echo ('Complete');
}
else {
echo ('Error');
}
}catch(PDOException $e) {
return $e->getMessage();
}
}
現在我的理由「回聲$ FILE_PATH;」有確保值正確傳遞,他們是。
它目前Echo的這一點,如果圖像被上傳:圖片/資料/ f1b4edb293.jpg
所以一切工作正常,它只是failes在實際存儲點。
現在爲了進一步測試我甚至從FILE_PATH變量去除字符串和路徑的細節,只是添加在那裏e.g虛值:
$test = "test";
$file_path = $test;
果然,它的工作,並插入測試到數據庫中。
所以這讓我相信有一個與此格式的問題:
$file_path = 'images/profile/' . substr(md5(time()), 0, 10) . '.' . $file_extn;
什麼的一部分是從保存到數據庫停止它的任何想法?
是的,沒有例外被拋出。運行var_dump,你是對的。我更新了查詢,現在它成爲一種魅力。我仍在學習PDO,所以我的方法還不完善。謝謝 – JPDP 2013-02-27 09:32:47
@JPDP - 你在'catch()'塊中有''get $ e-> getMessage();''。你真的檢查返回值嗎? – 2013-02-27 09:33:42