Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.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 通过输入类型文件更新blob文件_Php_Mysql_Sql_Image_Blob - Fatal编程技术网

Php 通过输入类型文件更新blob文件

Php 通过输入类型文件更新blob文件,php,mysql,sql,image,blob,Php,Mysql,Sql,Image,Blob,我目前正在尝试更新数据库中的一个图像。文件信息正在被转移,但是我得到了“警告:mysql_query()希望参数1是字符串,资源在中给定”。这是我的密码 $size = $_FILES['file']['size'] ; $type = $_FILES['file']['type']; $tmp_name = $_FILES['file']['tmp_name']; $name = $_FILES['file']['name']; mysql_select_

我目前正在尝试更新数据库中的一个图像。文件信息正在被转移,但是我得到了“警告:mysql_query()希望参数1是字符串,资源在中给定”。这是我的密码

$size = $_FILES['file']['size'] ;       
$type = $_FILES['file']['type'];        
$tmp_name = $_FILES['file']['tmp_name'];    
$name = $_FILES['file']['name'];
mysql_select_db($database_fot, $fot);
$image = addslashes(fread(fopen($tmp_name, "rb"),$size));
$qry = "UPDATE film SET (image)" . " VALUES ('$image')";
$result=mysql_query($qry) or die(mysql_error());

我不断收到错误“您的SQL语法有错误;请查看与MySQL服务器版本对应的手册,以了解使用near'(图像)值的正确语法(第1行的“0\0\0\0\0\0ÿÛ\0”尝试一下,可能会有用

$con = mysqli_connect("hostname", "username", "password" ,"database") or die("Could not connect database"); //the connection line
$query=mysqli_query($con,'UPDATE film SET image="'.$image.'"')or trigger_error(mysqli_error()); ///where $con is the mysqli_connect variable
注意:您应该使用
mysqli
而不是
mysql
,因为
mysql
对于较新的mysql数据库不再有效


您应该在数据库中插入指向图像的链接,而不是图像本身

使用此脚本

<?php
ini_set('display_errors', 'On');
ini_set('display_startup_errors', 'On');
error_reporting(E_ALL);

$mysqli = new mysqli($dbhost, $dbuser, $dbpass, $dbname);
if ($mysqli->connect_errno) {
    echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

    $errorinfo = $_FILES['file']["error"];
    $filename = $_FILES['file']["name"];
    $tmpfile = $_FILES['file']["tmp_name"];
    $filesize = $_FILES['file']["size"];
    $filetype = $_FILES['file']["type"];

    if (!($filetype == "image/jpeg" && $filesize > 0)) {
        echo "Import of photo failed";
    }

    if ($filetype == "image/jpeg" && $filesize > 0 && $filesize < 1048576) {
        echo "Import of photo success";

        if (!($stmt=$mysqli->prepare("INSERT INTO film (image) VALUE (?)"))) {
            echo "Prepare failed: (" . $mysqli->errno . ")" . $mysqli->error;
        }
        $null = NULL;
        if (!$stmt->bind_param("s", $_POST['file'], $null)) {
            echo "Binding parameters failed: (" . $stmt->errno .") " . $stmt->error;
        }

        if (!$stmt->send_long_data(0, file_get_contents($_POST['file']))) {
            echo "Did not get contents";
        }

        if (!$stmt->execute()) {
            echo "Execute failed: (" . $stmt->errno . ") " . $stmt->error;
        }

        else {
            printf("%d row inserted.<br/>", $stmt->affected_rows);
        }
    }
    else {
        echo "Image must be under 1 MB";
    }
    $stmt->close();

$mysqli->close();
?>


感谢您的回复,但我现在收到错误“警告:mysqli\u query()期望参数1为mysqli,资源在C:\wamp\www\Film on Time\admin\u update.php第63行给出”还有,$con意味着什么是连接?@Nic你正在使用wamp不要使用wamp作为你的Web服务器,它会给你带来很多问题,而使用XAMPP它不会给你任何错误你使用了mysqli_查询..所以使用mysqli_select_db,mysqli_connect在顶部你可以得到连接,因为$con在那一行不是mysqli类型的连接,而是givingerror@MsiSaurovh你一个字也不懂saying@MsiSaurovh我想他是在尝试将图像本身插入数据库,而不是数据库中图像的链接,可能是更改图像列排序规则类型utf8\u bin解决了这个问题