我试图从php插入一个图像到mysql数据库。我使用以下代码来执行此操作。
$file= file_get_contents($_FILES['file']['tmp_name']);
$id=$_SESSION['id'];
$sql="UPDATE mainadmin set photo='$file' where id='$id'";
mysql_query($sql);
$_SESSION['photo']=$file;
但是图像没有插入到mysql数据库中。但它正确存储在会话变量中并正确显示。但是当我要从数据库中获取图像时,我看到之前的图像仍然存储,并且数据库中没有进行更新。任何人都可以帮我找到错误
答案 0 :(得分:1)
尝试以这种方式更改代码,并将数据库字段照片设为 BLOB 类型
$fp = fopen($_FILES['file']['tmp_name'], "r");
if ($fp) {
$content = fread($fp, $_FILES['file']['size']);
fclose($fp);
$content = addslashes($content);
$sql="UPDATE mainadmin set photo='$content' where id='$id'";
mysql_query($sql);
$_SESSION['photo']=$content;
}
答案 1 :(得分:0)
我找到了问题的解决方案。 这是我更新的代码。只需使用addSlashes()方法解决了问题
$file= file_get_contents($_FILES['file']['tmp_name']);
$filei=addslashes($file) ;
$id=$_SESSION['id'];
$sql="UPDATE mainadmin set photo='$filei' where id='$id'";
mysql_query($sql);
$_SESSION['photo']=$file;