sql server — вставить в всегда зашифрованное поле sqlserver 2016 из php 7.1

Я использую PHP, IIS с SQL Server 2016 в качестве бэкэнда. Я использую всегда зашифрованную функцию. для этого я могу выбрать данные в виде простого текста. но не в состоянии вставить данные в таблицу.
Я использую код, подобный этому.

$queryInsert = "insert into empinfo (EmpID, JobTitle, LoginID, NatID) values

(?,?,?,?)";
$res = odbc_prepare($connect, $queryInsert);
$result = odbc_execute($res, array($empId, $jobTitle, $loginId, $natId));

Я получаю ошибку, как это.

PHP Warning: odbc_prepare(): SQL error: [Microsoft][ODBC Driver 13 for SQL
Server][SQL Server]Operand type clash: void type is incompatible with
nvarchar(256) encrypted with (encryption_type = 'DETERMINISTIC',
encryption_algorithm_name = 'AEAD_AES_256_CBC_HMAC_SHA_256',
column_encryption_key_name = 'CEK_Auto1',
column_encryption_key_database_name = 'Test'), SQL state 22005 in
SQLDescribeParameter in C:\inetpub\wwwroot\odbctest\odbctest.php on line 22
PHP Warning: odbc_execute() expects parameter 1 to be resource, boolean
given in C:\inetpub\wwwroot\odbctest\odbctest.php on line 23

может кто нибудь подскажет где я делаю не так.

0

Решение

Пожалуйста, попробуйте указать типы параметров следующим образом

/* Construct the parameter array. */
$employeeId = 5;
$changeDate = "2005-06-07";
$rate = 30;
$payFrequency = 2;
$params1 = array(
array($employeeId, null),
array($changeDate, null, null, SQLSRV_SQLTYPE_DATETIME),
array($rate, null, null, SQLSRV_SQLTYPE_MONEY),
array($payFrequency, null, null, SQLSRV_SQLTYPE_TINYINT)

Эта статья объясняет, как использовать всегда зашифрованный с помощью драйвера ODBC 13.1

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]