我目前正在研究一个图像上传脚本,但是在尝试将图像的详细信息存储到数据库时遇到了一个小问题。 上传表单抓取图像,检查其详细信息并获取图像的扩展名。这工作正常,但它不会将图像路径存储到数据库中。存储到数据库中 - 问题
这是代码的有问题的部分:
$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