Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/240.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在将BLOB数据从php插入MySQL时,我可以';看不到准确的数据类型_Php_Mysql_Types_Insert_Blob - Fatal编程技术网

在将BLOB数据从php插入MySQL时,我可以';看不到准确的数据类型

在将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

基本上正在进行一项测试,以了解如何在php/mysql之间上传/显示图像

问题是,在我上传图像后,在数据库中,BLOB列只是将“im”而不是“image/jpeg”删除。将数据作为“im”插入时会出现什么问题

非常感谢

这是密码

$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都允许您插入不安全的文本(例如,用引号填充),而不用担心它们会被用作注入攻击。无论如何