使用SQLSRV将数据传递到存储过程

时间:2018-08-30 22:08:00

标签: php xml stored-procedures sqlsrv

今晚我已经读了很多书,但仍然不知道该怎么做!

我有一个存储过程,需要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通过<>和\传递完整的数据吗?

0 个答案:

没有答案