2017-03-18 2 views
3

jsonを使用して残りのAPIを学習し、json配列を通じて値を取得しています。私はlocalhostであるデータベースにリクエストをしようとしています。これに含まれるテーブルには、IDとステータスの2つの値があり、両方の列には整数値があります。 クラスmysqli_resultのオブジェクトをC: wamp www webservice_mine.phpの文字列に変換できません

この

は私が取得しています

http://localhost/webservice_mine.php?ID='1'&Status='2' 

エラーを作っているの要求である私は、SQLクエリに整数変数を渡しているので、これがあると思い

Catchable fatal error: Object of class mysqli_result could not be converted to string in C:\wamp\www\webservice_mine.php on line 24

です。変数を連結するのはエラーですか?誰かがこれを正しく行う方法を説明してもらえますか?それは大きな助けになるでしょう。

<?php 
      if((isset($_REQUEST["ID"]))&&(isset($_REQUEST["Status"]))){ 
      $servername = "localhost"; 
      $username = "root"; 
      $password = ""; 
      $dbname = "arduino_test"; 

      $jsonarray= array('Status' => false,'Message'=>"Empty"); 
      // Create connection 
      $conn = new mysqli($servername, $username, $password, $dbname); 
      // Check connection 
      if ($conn->connect_error) { 
       die("Connection failed: " . $conn->connect_error); 
       $jsonarray= array('Status' => false,'Message'=>"Database Not Connected"); 
       echo json_encode($jsonarray); 

      } 
      else{ 
       $jsonarray= array('Status'=>false,'Message'=>"Database connected"); 

       $sql = "SELECT * FROM `lights` WHERE ID=".$_REQUEST["ID"].""; 
       //$result = $conn->query($sql); 
       $result = $conn->query($sql); 
       echo $result; 
       $jsonarray= array('Status'=>false,'Message'=> $result); 



       if (($result = $conn->query($sql)) !== FALSE) 
      { 
       echo "query success"; 

       while($row = $result->fetch_assoc()) 
       { 
        echo "ID: " . $row["ID"]. " "; 
       } 
      } 
      else 
      { 
       echo "query failure"; 
       echo "Error: " . $sql . "<br>" . $conn->error; 
      } 

       // output data of each row 
       //while($row = $result->fetch_assoc()) { 
         //$jsonarray[] = $row; 


      //} 
       echo json_encode($jsonarray); 
      } 
     } 
?> 
+0

あなたが二回 –

+0

照会していますそう私に気づいた:)ありがとう:) –

答えて

0

(悪い英語のため申し訳ありません)

$jsonarray= array('Status'=>false,'Message'=> $result); 

$resultリソースではなく、配列に使用できる

$data = array(); //empty array 

while($row = $result->fetch_assoc()) 
    { 
     $data[] = $row; //store each row in $data 
    } 

$jsonarray= array('Status'=>false,'Message'=> $data); 

です:

$data = $result->fetch_all(MYSQLI_ASSOC); 
//fetch all data from resource and return as associative array 

の代わり:

$data = array(); //empty array 

while($row = $result->fetch_assoc()) 
    { 
     $data[] = $row; //store each row in $data 
    } 

それは同じ結果が、以下のコード:)

+0

ああ説明をありがとうございました:)それは出力としてを取得イム今働いています{"ID": "1"、 "ステータス": "1"}、{"ID": "1"、 "ステータス": "0"}、{"ID": "1" "Status": "1"}] –

+0

またはfetch_all()を使ってresurceからフェッチすることができ、連想配列を返します: '$ data = $ result-> fetch_all()' –

+0

それはどういう意味ですか?連想配列ですか? –

関連する問題