使用存储过程、php和mysqli将image/longblob上传到mysql数据库
我正在尝试将图像上载到我的数据库,我知道将图像上载到数据库是不好的做法。我通过在我的php类(DB处理程序)中运行查询来实现它。现在我正在尝试使用存储过程,但似乎无法在存储过程中找到错误。如果我的问题含糊不清,我道歉 DB Handler.php DBHelper.php 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?如果是,请相应地标记您的问题。当你运行代码时会发生什么?你会收到错误消息
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