我正在尝试使用 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"]=> string(5) "empty" ["databaseType"]=> bool(false) ["EOF"]=> bool(true) ["_numOfRows" ]=> int(0) ["fields"]=> bool(false) ["connection"]=> bool(false) } empty10
但是,如果我在通过 Microsoft 服务器管理工作室连接到数据库时执行完全相同的查询,我会成功返回结果:
71测试路
谁能告诉我这里可能出了什么问题或者我如何在 PHP 中正确地做到这一点?