Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/258.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 如何使用准备好的语句在varbinary数据库字段中保存字符串?_Php_Mysql - Fatal编程技术网

Php 如何使用准备好的语句在varbinary数据库字段中保存字符串?

Php 如何使用准备好的语句在varbinary数据库字段中保存字符串?,php,mysql,Php,Mysql,我搜索了很长时间,只是为了将一个简单字符串保存在MySQL数据库中的varbinary(4096)中。有一些解决方案,但没有一个有效 function addGCMRegistrationToken($username, $gcm_token) { //... $gcm_token_bin = (binary)$gcm_token; $gcm_token = unpack('H*', $gcm_token); $stmt->

我搜索了很长时间,只是为了将一个简单字符串保存在MySQL数据库中的varbinary(4096)中。有一些解决方案,但没有一个有效

function addGCMRegistrationToken($username, $gcm_token) {
        //...

        $gcm_token_bin = (binary)$gcm_token;
        $gcm_token = unpack('H*', $gcm_token);
        $stmt->bind_param('bs', $gcm_token, $username);
        //...
    }
我必须以某种方式将$gcm_令牌转换为
varbinary
。无论是
binary()
还是
pack
都不会产生解决方案。数据库字段保持为空,但通常不会发生错误


有人能告诉我如何进行正确的转换吗?

没有。它不是二进制的。这是一个通过POST获得的字符串。以二进制形式存储的原因是什么?您可以在varbinary中存储任何内容,包括字符串。为什么需要进行任何转换?这样效率更高。我想存储一个长度为4096的Google云消息注册id。此外,我对解决方案很好奇;)在空间或处理方面高效?我仍然不理解在插入之前进行任何转换的必要性。只需在收到时存储您的价值。它不是二进制的。这是一个通过POST获得的字符串。以二进制形式存储的原因是什么?您可以在varbinary中存储任何内容,包括字符串。为什么需要进行任何转换?这样效率更高。我想存储一个长度为4096的Google云消息注册id。此外,我对解决方案很好奇;)在空间或处理方面高效?我仍然不理解在插入之前进行任何转换的必要性。只需在收到时存储您的价值。