【发布时间】:2016-10-12 05:51:40
【问题描述】:
$stmt2 = $dbh-> prepare("Select * from encryptme where ".decrypt('encryptedcolumn', $key)." = ?");
$stmt2 -> bindValue(1, $dec, PDO::PARAM_STR);
$stmt2 -> execute();
我有encrypt() 和decrypt() 我在使用encrypt() 后保存了数据,现在我想选择数据但我无法选择,因为数据已加密。我尝试的是我在列名中使用了该函数,但它不起作用我收到错误提示
带有消息“SQLSTATE[42000]”的未捕获异常“PDOException”:语法错误或访问冲突:1064 您的 SQL 语法有错误;查看与您的 MySQL 服务器版本相对应的手册,了解在 '=' 附近使用的正确语法
如何解密查询语句中的列?
【问题讨论】:
-
您想解密从查询中返回的返回,不是吗?因此,您需要获取加密列中的值,然后对这些值运行解密。
-
我想要的是我想从列中选择解密的值..你
$dec它是解密的值..我想选择列encryptme作为@的值987654327@ 但我看不到它,因为该列已加密.. 所以我所做的是我在列上运行函数decrypt().. 但我得到错误.. 如何解密 where 子句中的值? @JonStirling -
@JonStirling 如何在 where 子句中做到这一点?
-
列的内容可能是加密的,但列名很可能不是,这有什么意义?
-
@BrownmanRevival 我猜这取决于你的加密/解密方法。
标签: php mysql encryption pdo