使用存储过程、php和mysqli将image/longblob上传到mysql数据库

使用存储过程、php和mysqli将image/longblob上传到mysql数据库,php,mysql,mysqli,blob,Php,Mysql,Mysqli,Blob,我正在尝试将图像上载到我的数据库,我知道将图像上载到数据库是不好的做法。我通过在我的php类(DB处理程序)中运行查询来实现它。现在我正在尝试使用存储过程,但似乎无法在存储过程中找到错误。如果我的问题含糊不清,我道歉 DB Handler.php DBHelper.php MYSQL存储过程 这就是解决办法。必须删除该交易 business.Logo将被解释为一个单独的列,因为它位于后面的刻度之间。如下所示。这大概是PHP?如果是,请相应地标记您的问题。当你运行代码时会发生什么?你会收到错误消息

我正在尝试将图像上载到我的数据库,我知道将图像上载到数据库是不好的做法。我通过在我的php类(DB处理程序)中运行查询来实现它。现在我正在尝试使用存储过程,但似乎无法在存储过程中找到错误。如果我的问题含糊不清,我道歉

DB Handler.php DBHelper.php MYSQL存储过程 这就是解决办法。必须删除该交易


business.Logo
将被解释为一个单独的列,因为它位于后面的刻度之间。如下所示。这大概是PHP?如果是,请相应地标记您的问题。当你运行代码时会发生什么?你会收到错误消息吗?@NevilleKuyt为错误的标签道歉。我没有收到任何错误。这是成功或失败的结果{受影响的行:null,插入的行:null,num行:null,参数计数:null,字段计数:null,…}
public static function Business_Logo_Upload($image)
    {
        $sp = 'CALL uspBusines_Logo_Upload(?)';
        return DBHelper::BlobUpload($sp,$image);
    }
public static function BlobUpload($query,$image)
    {
        //Open Connection
        $conn = DB::Connect();
        //Prepare Query
        $call = $conn->prepare($query);
        $null = null;
        $call->bind_param('b', $null);
        $call->send_long_data(0, file_get_contents($image));
        $call->execute();
        //Close Connection
        mysqli_close($conn);
        //Return Result
        return $call;
    }
CREATE DEFINER=`BIT1`@`%` PROCEDURE `uspBusines_Logo_Upload`(IN logo LONGBLOB)
BEGIN
    DECLARE errno INT;
    DECLARE EXIT HANDLER FOR SQLEXCEPTION
    BEGIN
    GET CURRENT DIAGNOSTICS CONDITION 1 errno = MYSQL_ERRNO;
    SELECT errno AS MYSQL_ERROR;
    ROLLBACK;
    END;

    START TRANSACTION;
    SET autocommit=0;

    UPDATE business
    SET business.Logo = logo
    WHERE business.BusinessID = 1;
END
CREATE DEFINER=`BIT1`@`%` PROCEDURE `uspBusines_Logo_Upload`(IN logo LONGBLOB)
BEGIN
    UPDATE business
    SET business.Logo = logo
    WHERE business.BusinessID = 1;
END