我需要在我的postgres数据库中存储加密的数字。我想使用mcrypt和3DES功能,加密和解密工作正常,但我无法将其存储在数据库中。我的数据库字段为char(50)
。
$key = "this is a secret key";
$input = "123456789";
$test = mcrypt_ecb(MCRYPT_3DES, $key, $input, MCRYPT_ENCRYPT);
$db = pg_connect("host=localhost dbname=testdb user=haxo");
$sql = "insert into test (pin) values('".$test."')";
$result = pg_query($sql);
if (!$result) {
$errormessage = pg_last_error();
echo "Error with query: " . $errormessage;
exit();
}
pg_close();
我得到的错误是:ERROR: unterminated quoted string at or near "'Ÿlä"
答案 0 :(得分:2)
使字段类型为BYTEA(用于存储二进制字符串),然后使用类似PDO prepare,bindValue,execute来插入值。
另外,你知道sql injection吗?您正在使用的编码模式是一个简单的解决方法。