0

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) "空" ["databaseType"]=> bool(false) ["EOF"]=> bool(true) ["_numOfRows" ]=> int(0) ["フィールド"]=> bool(false) ["接続"]=> bool(false) } empty10

  • ただし、Microsoft サーバー管理スタジオを介してデータベースに接続しているときにまったく同じクエリを実行すると、結果が正常に返されます。

    71 テストロード

ここで何がうまくいかないのか、またはPHPでこれを正しく行う方法を教えてもらえますか?

4

1 に答える 1

0

あなた$sqlの中にSELECTステートメントがあるので、おそらくステートメントを実行した後に結果を取得する必要があります:

$result = $db->execute($sql);
while ($row = $result->fetchRow()) {
  print_r($result);
}

詳細については、 ADOdb のドキュメントを参照してください。

PSexecute()呼び出しの二重引用符は単に何もしないので、省略してもかまいません。

于 2016-07-13T11:21:52.910 に答える