获取请求,返回带有有效参数的空json

时间:2019-02-08 16:29:01

标签: php json rest get

所以我在站点的phpmyadmin中有一个会员数据库,并且我获取了一个api以获取给定ID号的特定会员,现在我可以连接并拨打电话了,但是每次我只收到一个空的json例子

  

[“”,“”,“”,“,”“,”“]

id号是一个有效的数字,一个无效的数字甚至是一个字母都没关系,那就是我每次都能得到的

现在这是我的连接代码

 <?php 
 header( 'Content-Type: text/html;charset=utf-8' );


 function ejecutarSQLCommand($commando){

 $mysqli = new mysqli("ip", "user", "pass","database");

 /* check connection */
 if ($mysqli->connect_errno) {
 printf("Connect failed: %s\n", $mysqli->connect_error);
 exit();
 }

 if ( $mysqli->multi_query($commando)) {
    if ($resultset = $mysqli->store_result()) {
       while ($row = $resultset->fetch_array(MYSQLI_BOTH)) {

       }
        $resultset->free();
     }


}



$mysqli->close();
}

function getSQLResultSet($commando){


  $mysqli = new mysqli("ip", "user", "pass", "database");
  /* check connection */
  if ($mysqli->connect_errno) {
    printf("Connect failed: %s\n", $mysqli->connect_error);
    exit();
  }

if ( $mysqli->multi_query($commando)) {
    return $mysqli->store_result();




}



$mysqli->close();
}


?>

这是请求文件

<?php
include('function.php');
$id=$_GET["ID"];


if($resultset=getSQLResultSet("SELECT * FROM `table` WHERE ID='$id'")){
    while ($row = $resultset->fetch_array(MYSQLI_NUM)){
        echo json_encode($row);
    }
}

?>

1 个答案:

答案 0 :(得分:0)

我编写了更实际的代码。下一步将把它变成一个类。

准备(而不是查询)将防止SQL注入以及其中带有引号的数据。

index.php

<?php

error_reporting(E_ALL);
ini_set('display_errors', '1');

include('function.php');

$id=$_GET["ID"];

dbConnect();
$rows = getSQLResultSet($id);
echo json_encode($rows);

dbClos​​e();

function.php

<?php
//
// not sure if this is needed for returning json
//
header( 'Content-Type: text/html;charset=utf-8' );

//////////////////////////////////////////////////////////////////////////////////////////////////////  
function  dbConnect(){
    //
    // You should be gettng the db connect info from a source out side the webservers reach.
    //
    // read a ini file or imclude a file
    //

    $ip     = '127.0.0.1';
    $user = 'test';
    $pass = 'test12';
    $db     = 'test';

    $GLOBALS['mysqlI'] = new mysqli($ip, $user, $pass, $db);

    if (mysqli_connect_errno()) {
        printf("Connect failed: %s\n", mysqli_connect_errno());
        exit();
    }
}
//////////////////////////////////////////////////////////////////////////////////////////////////////
function dbClose(){
    $GLOBALS['mysqlI']->close();
}
/////////////////////////////////////////////////////////////////////////////////////////////////
function getSQLResultSet($id){
    $stmt = $GLOBALS['mysqlI']->prepare('SELECT * FROM test WHERE ID = ?');
    $stmt->bind_param('i', $id);
    $stmt->execute();
    $result = $stmt->get_result();
    while($row = $result->fetch_object()){
        $ret[] = $row;
    }
    return $ret;
}