无法从sp到数组得到结果

时间:2016-05-25 14:21:24

标签: php mysql

我正在尝试使用MySQLphp中的存储过程的结果导入到数组中。我的代码:

function get_all_uzovi($dbc) {

    //$query = "SELECT diagnose_id, diagnose_code, specialisme_agb_code_fk 
    //       FROM tbl_diagnoses
    //       WHERE specialisme_agb_code_fk = '$var_chosen_specialism' 
    //       ORDER BY diagnose_code ASC";
    $result = mysqli_query($dbc,"CALL spGetUzovi");

    //WHAT DOES NOT WORK:
    //$data = array();
    //while ( $row = $result->fetch_assoc() ) {
    //  $data[] = $row;
    //}
    //return json_encode($data);

    //WHAT DOES WORK:
      while ($row = mysqli_fetch_array($result)){   
          echo $row[0] . " - " . + $row[1];

      }


}

“//什么不工作”下的代码是我需要的:结果为json格式。出于某种原因,它什么也没给我......

“什么工作”下的代码确实有效,但这不是我想要的。

sp:

的代码
CREATE DEFINER=`ziekenh3`@`localhost` PROCEDURE `spGetUzovi`()
    NO SQL
SELECT *
FROM tbl_uzovi

我在处理查询时使用的代码(确实有效)而不是sp:

function get_diagnoses($dbc,$var_chosen_specialism) {

    $query = "SELECT diagnose_id, diagnose_code, specialisme_agb_code_fk 
             FROM tbl_diagnoses
             WHERE specialisme_agb_code_fk = '$var_chosen_specialism' 
             ORDER BY diagnose_code ASC";
    $result = mysqli_query($dbc,$query);

    $data = array();
    //while ( $row = $result->fetch_assoc() ) {
    while ( $row = mysqli_fetch_assoc($result) ) {
      $data[] = $row;
    }

    return json_encode($data);  
}

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

这有用吗?



function get_all_uzovi($dbc) {

    $result = mysqli_query($dbc,"CALL spGetUzovi");

    $data = array();
    while ( $row = $result->fetch_assoc() ) {
      $data[] = $row;
    }
    return json_encode($data);

}




答案 1 :(得分:0)

我解决了它。有点愚蠢的问题:结果集中的某些字段包含以下字符:(。等等我不认为json喜欢这个..

当我在另一张桌子上做SELECT * FROM时,它有效。所以,我现在使用的代码是:

function get_all_uzovi($dbc) {

    $q = "CALL spGetUzovi";
    $r = mysqli_query($dbc,$q);

    while ($row = mysqli_fetch_assoc($r)) {
      $data[] = $row;
    }

    return json_encode($data);

}

对于给您带来的不便,我很抱歉!