Я пытаюсь использовать 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 Management Studio, я получаю результаты, возвращаемые успешно:
71 Test Road
Кто-нибудь может посоветовать, что здесь может пойти не так или как я могу правильно сделать это в PHP?
В вашем $sql
Eсть SELECT
оператор, так что вам, скорее всего, нужно получить результат после выполнения оператора:
$result = $db->execute($sql);
while ($row = $result->fetchRow()) {
print_r($result);
}
Увидеть Документация ADOdb Больше подробностей.
Постскриптум Двойные кавычки в вашем execute()
Звони просто ничего не делай, можешь их опустить.
Других решений пока нет …