Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.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
Php 将图像插入数据库_Php_Mysql - Fatal编程技术网

Php 将图像插入数据库

Php 将图像插入数据库,php,mysql,Php,Mysql,我试图上传一个图像到mysql数据库,但是当我上传图像时,我收到确认消息,但是当我检查我的数据库时,图像行是空的,我做错了什么 除了所有说明“您不应该在表中存储文件,因为…”的注释外,这是适用于PHP7的: 文件: 上传 可能的错误源: $connect->query($sql)==TRUE应该是$connect->query($sql)!==错误 要更新的条目不存在 imagem='{$image}'是一种相当“黑”的方法。如果要插入变量,请使用串联:sql=“UPDATE serv

我试图上传一个图像到mysql数据库,但是当我上传图像时,我收到确认消息,但是当我检查我的数据库时,图像行是空的,我做错了什么



除了所有说明“您不应该在表中存储文件,因为…”的注释外,这是适用于PHP7的:


文件:
上传
可能的错误源:

  • $connect->query($sql)==TRUE
    应该是
    $connect->query($sql)!==错误
  • 要更新的条目不存在
  • imagem='{$image}'
    是一种相当“黑”的方法。如果要插入变量,请使用串联:
    sql=“UPDATE servicos SET texto=”“$t.”,imagem=”“$image.”,其中nmr=“.n

希望这有帮助。

为什么要使用addslashes(文件获取内容)(?请参见此处:为什么要增加数据库大小?将文件存储在数据库中不是一个好做法,您应该借助文件系统将其存储在服务器上。如果您仍要将文件保存在数据库中,则首先需要将其转换为base64格式或我们可以保存在数据库中的任何其他格式。一种常见的方法是ndle这是将映像存储在文件系统中,然后仅将映像的路径存储在文件系统中database@fredrover完全正确,将服务器上的图像存储在一个目录中,并且只将url存储在数据库中。此外,您应该查看以了解SQL注入。您的代码一点也不安全,您的数据库可能会在一段时间内被入侵几秒钟…@itzmukeshy7我如何转换?
<?php
if(isset($_POST['submit'])) {
    var_dump($_FILES);
    $dbh = new PDO("mysql:host=127.0.0.1;dbname=test", "root", "");
    $stm = $dbh->prepare("INSERT INTO test_img (cont) VALUES (?)");
    $stm->execute(array(file_get_contents($_FILES['fileinput']['tmp_name'])));
}
?>
<form method="post" enctype="multipart/form-data">
    File: <input type="file" name="fileinput"><br>
    <button name="submit">Upload</button>
</form>