我目前正在处理图像上传脚本,但是在尝试将图像的详细信息存储到数据库时遇到了一个小问题。上传表单抓取图像,检查其详细信息并获取图像的扩展名。这工作正常,但它不会将图像路径存储到数据库中。
这是有问题的代码的一部分:
$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();
}
}
现在我有“echo $file_path;”的原因 必须确保值正确传递,它们就是这样。
如果上传图像,它目前会回显:images/profile/f1b4edb293.jpg
所以一切都很好,只是在实际存储时失败了。
现在为了进一步测试,我什至从 file_path 变量中删除了字符串和路径详细信息,并在其中添加了一个虚拟值,例如:
$test = "test";
$file_path = $test;
果然,它工作并将测试插入数据库。
所以这让我相信这种格式存在问题:
$file_path = 'images/profile/' . substr(md5(time()), 0, 10) . '.' . $file_extn;
关于其中哪一部分阻止它保存到数据库的任何想法?