php ms sql server получает нулевой ответ - PullRequest
0 голосов
/ 14 мая 2019

При запуске php-кода получен нулевой ответ.вот мой код

<?php

header('Access-Control-Allow-Origin: *');
header("Access-Control-Allow-Methods: GET,POST, OPTIONS");
header('Content-Type: application/json');


// include database and object files
include_once '../config/database.php';

$data = json_decode(file_get_contents("php://input"));


$CIFNO=$data->CIFNO;
$PUBLIC_KEY=$data->PUBLIC_KEY ;



//Read Query

      $fetchgenders_sql=

      " exec USP_GET_CUSTOMER_INFO_BY_CIF"
       ." @CIFNO ='009',  @PUBLIC_KEY ='1556422589arijit11111199' ";

//echo json_encode($fetchgenders_sql);
$getgenderResults= sqlsrv_query($conn, $fetchgenders_sql);


if ($getgenderResults == FALSE)
 die(print_r(sqlsrv_errors()));

 $gender_arr = array(); 
while ($row = sqlsrv_fetch_array($getgenderResults, SQLSRV_FETCH_ASSOC)) {

$gender_arr[]=   $row; 

}
if (empty($gender_arr)) {
        $genders = array(
                "status" => "400",
                "fieldName"=> "gender",
                "defaultMessage" => "Sorry not found");  
         }else{
$genders = array(
        "status" => "200",
        "genders" => $gender_arr);
}
//print_r(json_encode($organizationType));
sqlsrv_close($conn); //Close the connnectiokn first

echo json_encode($genders);
 ?>

, если я получу инструкцию "echo json_encode ($ fetchgenders_sql);"и запустить в базе данных, данные показывают.но при запуске php получает нулевой ответ в $ row.sex_arr возвращает ноль ([])

1 Ответ

1 голос
/ 14 мая 2019

Одним из возможных объяснений вашего неожиданного результата является тот факт, что ваша хранимая процедура может возвращать несколько наборов результатов. Одна из причин этого заключается в том, что вы пропускаете SET NOCOUNT ON в качестве первой строки вашей хранимой процедуры. Тогда количество затронутых строк является частью наборов результатов.

Вы можете попытаться использовать sqlsrv_next_result () для получения всех ваших наборов результатов:

<?php
header('Access-Control-Allow-Origin: *');
header("Access-Control-Allow-Methods: GET,POST, OPTIONS");
header('Content-Type: application/json');

// Include database and object files
include_once '../config/database.php';

$data = json_decode(file_get_contents("php://input"));
$CIFNO = $data->CIFNO;
$PUBLIC_KEY = $data->PUBLIC_KEY ;

// Query
$fetchgenders_sql = "exec USP_GET_CUSTOMER_INFO_BY_CIF @CIFNO = '009', @PUBLIC_KEY ='1556422589arijit11111199'";
$getgenderResults = sqlsrv_query($conn, $fetchgenders_sql);
if ($getgenderResults === false) {
    die(print_r(sqlsrv_errors()));
}
$gender_arr = array();
do { 
    while ($row = sqlsrv_fetch_array($getgenderResults, SQLSRV_FETCH_ASSOC)) {
        $gender_arr[] = $row; 
    }
} while sqlsrv_next_result($getgenderResults);  

// Result
if (empty($gender_arr)) {
    $genders = array(
                "status" => "400",
                "fieldName"=> "gender",
                "defaultMessage" => "Sorry not found"
    );  
} else {
    $genders = array(
        "status" => "200",
        "genders" => $gender_arr
    );
}

// End
sqlsrv_close($conn); //Close the connnectiokn first
echo json_encode($genders);
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...