在将BLOB数据从php插入MySQL时,我可以';看不到准确的数据类型
基本上正在进行一项测试,以了解如何在php/mysql之间上传/显示图像 问题是,在我上传图像后,在数据库中,BLOB列只是将“im”而不是“image/jpeg”删除。将数据作为“im”插入时会出现什么问题 非常感谢 这是密码在将BLOB数据从php插入MySQL时,我可以';看不到准确的数据类型,php,mysql,types,insert,blob,Php,Mysql,Types,Insert,Blob,基本上正在进行一项测试,以了解如何在php/mysql之间上传/显示图像 问题是,在我上传图像后,在数据库中,BLOB列只是将“im”而不是“image/jpeg”删除。将数据作为“im”插入时会出现什么问题 非常感谢 这是密码 $aname = $_POST['aname']; $adetails = $_POST['adetails']; $aphoto = addslashes(file_get_contents($_FILES['aphoto']['tmp_name'])); $imag
$aname = $_POST['aname'];
$adetails = $_POST['adetails'];
$aphoto = addslashes(file_get_contents($_FILES['aphoto']['tmp_name']));
$image = getimagesize($_FILES['aphoto']['tmp_name']); //to know about image type etc.
$aphototype = $image['mime'];
$q = "INSERT INTO animaldata VALUES('','$aname','$adetails','$aphoto','$aphototype')";
我的最佳猜测是,您最后插入的列应该是varchar,或者不够长(例如,最多只允许2个字符),或者类似的内容。检查一下你的桌子结构 注意:通过插入animaldata而不指定哪些列,也会产生一些歧义。我建议命名这些列,并可能为第一列指定默认值
INSERT INTO animaldata
(Name, Details, Photo, PhotoType)
Values('$aname', '$adetails', '$aphoto', '$aphototype');
也调查准备好的声明。。。使您的陈述更加安全;) 我的最佳猜测是,您最后插入的列应该是varchar,或者不够长(例如,最多只允许2个字符),或者类似的内容。检查一下你的桌子结构 注意:通过插入animaldata而不指定哪些列,也会产生一些歧义。我建议命名这些列,并可能为第一列指定默认值
INSERT INTO animaldata
(Name, Details, Photo, PhotoType)
Values('$aname', '$adetails', '$aphoto', '$aphototype');
也调查准备好的声明。。。使您的陈述更加安全;) 它只显示“im”在哪里?你是说phpMyAdmin还是什么?为什么要将mime类型存储在blob字段中?它只在何处显示“im”?你是说phpMyAdmin还是什么?为什么要将mime类型存储在blob字段中?天哪!这是可笑的。非常感谢你,大卫,有时候不管你戴多少副眼镜才能看到,你还是看不见。。。varchar(2)导致了问题。顺便说一句,thnx的附加信息,使它更安全。但是,我不明白的是,其他名称选项实际上与我在值中输入的相同。将列名置于值之前的主要目的是什么?再次感谢…@user1540914:如果他的答案解决了您的疑问,请将其标记为正确答案(单击此答案左侧的勾号)@user1540914:很抱歉没有更好地解释。如果您正在获取用户数据,我建议您使用这样一种准备好的语句:注意准备好的语句中的“?”——PDO和mysqli都允许您插入不安全的文本(例如,用引号填充),而不用担心它们会被用作注入攻击。不管怎样…天哪!这是可笑的。非常感谢你,大卫,有时候不管你戴多少副眼镜才能看到,你还是看不见。。。varchar(2)导致了问题。顺便说一句,thnx的附加信息,使它更安全。但是,我不明白的是,其他名称选项实际上与我在值中输入的相同。将列名置于值之前的主要目的是什么?再次感谢…@user1540914:如果他的答案解决了您的疑问,请将其标记为正确答案(单击此答案左侧的勾号)@user1540914:很抱歉没有更好地解释。如果您正在获取用户数据,我建议您使用这样一种准备好的语句:注意准备好的语句中的“?”——PDO和mysqli都允许您插入不安全的文本(例如,用引号填充),而不用担心它们会被用作注入攻击。无论如何