首页 > 解决方案 > PHP - 如何从二进制字符串转到数据库中的 blob?

问题描述

我有一个二进制字符串,我正在尝试将其放入数据库。我通过尝试将其解压缩到二进制数组然后将其插入数据库来做到这一点。但是一旦我这样做了,blob 列似乎是空的?我真的被这个问题困住了。$request->recording 是二进制字符串。

在此处输入图像描述

在此处输入图像描述

Var Dump 看起来像这样,除了它更长,但我把它剪掉了,否则它会太长

数组(5177) { 2 => int(0) 2 =>
int(1) [3]=> int(0) [4]=> int(0) [5]=> int(0) [6]= >
int(255) [7]=> int(255) [8]=>

插入数据库

function insertIntoTable($connection, $tablename, $request)
{
    $stmt = $connection->prepare("INSERT into $tablename(game_name, gamer_tag, meta_data, recording) values (?, ?, ?, ?)");
    $byteArray = unpack('C*', $request->recording);
    var_dump($byteArray);
    $stmt->bind_param("sssb", $request->game_name, $request->gamer_tag, $request->meta_data, $byteArray);

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

Base 64 编码结果

字符串(1916)“AAAAAAD/////dGlvbnMuR2VuZXJpYy5MaXN0YDFbW1JlY29yZFJlcGxheURhdGEuRnJhbWVEYXRhLCBBc3NlbWJseS1DU2hhcnAsIFZlcnNpb249MC4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsXV0CAAAAAQAAAAkGAAAABAYAAACHAVN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLkxpc3RgMVtbUmVjb3JkUmVwbGF5RGF0YS5GcmFtZURhdGEsIEFzc2VtYmx5LUNTaGFycCwgVmVyc2lvbj0wLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGxdXQMAAAAGX2l0ZW1zBV9zaXplCF92ZXJzaW9uBAAAHFJlY29yZFJlcGxheURhdGEuRnJhbWVEYXRhW10CAAAACAgJBwAAAAEAAAABAAAABwcAAAAAAQAAAAQAAAAEGlJlY29yZFJlcGxheURhdGEuRnJhbWVEYXRhAgAAAAkIAAAADQMMCQAAAE1Vbml0eUVuZ2luZS5Db3JlTW9kdWxlLCBWZXJzaW9uPTAuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUIAAAAGlJlY29yZFJlcGxheURhdGEuRnJhbWVEYXRhBAAAAAZzZWNvbmQIcG9zaXRpb24Icm90YXRpb24Fc2NhbGUABAQECxNVbml0eUVuZ2luZS5WZWN0b3IzCQAAABZVbml0eUVuZ2luZS5RdWF0ZXJuaW9uCQAAABNVbml0eUVuZ2luZS5WZWN0b3IzCQAAAAIAAAAK16M8Bfb///8TVW5pdHlFbmdpbmUuVmVjdG9yMwMAAAABeAF5AXoAAAALCwsJAAAAAAAAAAKAcdb8AAAAABfX///8WVW5pdHlFbmdpbmUuUXVhdGVybmlvbgQAAAABeAF5AXoBdwAAAAAALCwsLCQAAAAwAAAAAAAAAAAAAAAgD8AAAA9P///gDAAAAAAAAAAAAgD8AAAA9P///gDAAAAAAAAAA/8/8

标签: php

解决方案


问题是bind_param("sssb因为它不应该是 ab 而是一个 s 。就像bind_param("ssss因为我插入的是二进制字符串而不是 blob。


推荐阅读