Передача данных в хранимую процедуру с использованием SQLSRV - PullRequest
0 голосов
/ 31 августа 2018

Сегодня я много читаю и до сих пор не могу понять, как это сделать!

У меня есть хранимая процедура, которая ожидает 4 входных параметра. Одним из параметров должна быть строка в этом формате:

<OPENING><OPEN>value<\OPEN><\OPENING>

Моя переменная PHP содержит именно этот формат, но когда я передаю его в SQL, теги <> и \ удаляются.

Поле ввода - это nvarchar, но я не могу найти способ отправить теги в строке.

К сожалению, у меня нет возможности изменить хранимую процедуру, поскольку она является частью гораздо большего проекта.

// Take the array format of OPEN_Input and convert it.  
    $OPEN = htmlspecialchars('<OPENING>');
    foreach($OPEN_Input as $value) {
      $OPEN.= htmlspecialchars('<OPEN>').$value.htmlspecialchars('<\OPEN>');
    }
    $OPEN.= htmlspecialchars('<\OPENING>'); 

    echo $OPEN;   // returns <OPENING><OPEN>values<\OPEN><\OPENING>




// Run the Stored Procedure 
    $sql = "{CALL proc_final_op_887(?, ?, ?, ?)}";  
    $params = array(   
                 array($StartFrom, SQLSRV_PARAM_IN),  
                 array($StartTo, SQLSRV_PARAM_IN),
                 array($OPEN, SQLSRV_PARAM_IN),
                 array($User_Name, SQLSRV_PARAM_IN),
               ); 


// Get the result of the query and assign the values to session variables.                  
        $result = sqlsrv_query($c2, $sql, $params) or die( print_r( sqlsrv_errors(), true)) ;

Кто-нибудь знает, как я могу передать данные вместе с <> и \ с помощью PHP?

...