在PHP中将字符串转换为Varbinary

时间:2016-07-02 12:37:02

标签: php sql-server codeigniter odbc

我在php中有以下代码:

$salt = bin2hex(openssl_random_pseudo_bytes(22));
$hash = crypt($this->input->post("defpswd"), "$2y$12$".$salt);

如果我尝试使用varbinary数据类型字段将$ hash值保存到MSSQL数据库表,我会收到错误消息:

  

[Microsoft] [ODBC SQL Server驱动程序] [SQL Server]隐式转换   从数据类型varchar到varbinary是不允许的。使用CONVERT   用于运行此查询的函数。

$ hash变量包含:

  

'$ 2Y $ 12 $ 35695d29f921c713eba4fu1VY0q6VF6HryPH9HjiLvHOoupXWvPn。'

如果我在is it possible to convert a string to varbinary in PHP without using the SQL function中使用二进制来转换$ hash,我会得到相同的错误。 我正在使用带有odbc连接的CodeIgniter和MSSQL数据库。我不对的是什么?谢谢。

1 个答案:

答案 0 :(得分:0)

alist不是二进制,它是一个字符串,它是Base64编码的,Base64是一个字符(ASCII)。只需使用$hash数据库类型。

没有理由将其投放到varchar