我正在尝试使用PHP来执行使用对称密钥解密的SQL查询。但是我无法得到任何结果。
我的PHP代码如下所示:
$sql = "OPEN SYMMETRIC KEY ServerKey DECRYPTION BY CERTIFICATE ServerCertificate WITH PASSWORD = 'P@ssw0rd' SELECT CONVERT(nvarchar, DecryptByKey([address])) AS [address] FROM [serverDBO].[dbo].[allUsers] where id=63";
$result = $db->Execute("$sql");
var_dump($result);
var_dump命令导致:
object(ADORecordSet_empty)#200(6){[“dataProvider”] =>串(5) “empty”[“databaseType”] => bool(false)[“EOF”] =>布尔(真) [ “_numOfRows”] => int(0)[“fields”] => bool(false)[“connection”] => bool(false)} empty10
但是,如果我通过Microsoft服务器管理工作室连接到数据库时执行完全相同的查询,我会成功返回结果:
71 Test Road
有人可以告诉我这里可能出现什么问题,或者我如何在PHP中正确地做到这一点?
答案 0 :(得分:0)
在Reload the page to get source for: http://127.0.0.1:8000/myapp/logout
中有一个$sql
语句,因此您很可能需要在执行语句后获取结果:
SELECT
有关详细信息,请参阅ADOdb documentation。
P.S。您$result = $db->execute($sql);
while ($row = $result->fetchRow()) {
print_r($result);
}
电话中的双引号根本无效,您可以省略它们。