为了账号安全,请及时绑定邮箱和手机立即绑定

我应该为 mysql blob 使用哪种 PDO 参数数据类型?

我应该为 mysql blob 使用哪种 PDO 参数数据类型?

PHP
慕桂英546537 2022-01-24 10:03:32
在我的一个数据库表中,我有几列将加密文本存储为 BLOB。到目前为止,在我准备好的 PDO 查询中,我一直在绑定值而不指定任何 PDO 数据类型,如下所示:$sql->bindParam(':enc_txt', $enc_txt);一切正常,但我想知道是否也指定参数类型会更好(并且可能)。我应该使用 PDO::PARAM_STR 吗?或者可能是 PDO::PARAM_LOB ?另外,当我没有指定任何参数类型时会发生什么?它是默认为 PARAM_STR 还是尝试自动检测类型?
查看完整描述

3 回答

?
倚天杖

TA贡献1828条经验 获得超3个赞

好吧,一切都可以从文档页面得到解答

PDO::PARAM_LOB 需要文件指针资源,而我怀疑您是否要将文本保存到文件中只是为了将其存储在数据库中。

第二个问题也是可以回答的:PDO:: PARAM_STR是省略时的默认类型。


查看完整回答
反对 回复 2022-01-24
?
30秒到达战场

TA贡献1828条经验 获得超6个赞

两者都应该工作。 PDO::PARAM_LOB允许您传递流,但仍然可以与字符串一起正常工作。 PDO::PARAM_STR也做这项工作。

我个人使用PDO::PARAM_STR.

更多信息在这里。这可能取决于您传递数据的方式以及您的数据库系统。TL;DR:Oracle 处理事情的方式略有不同。

对于您的第二个问题,快速查看此处的文档表明PDO::PARAM_STR是默认设置。没有类型猜测。


查看完整回答
反对 回复 2022-01-24
?
慕森卡

TA贡献1806条经验 获得超8个赞

根据文档,默认$data_type值为PDO::PARAM_STR


//img1.sycdn.imooc.com//61ee09220001181d10500510.jpg

因此,您可能应该将其声明为PDO::PARAM_LOB用于 blob 数据。


查看完整回答
反对 回复 2022-01-24
  • 3 回答
  • 0 关注
  • 176 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信