Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php json输出中的问题_Php_Json - Fatal编程技术网

Php json输出中的问题

Php json输出中的问题,php,json,Php,Json,我创建了一个json输出,但是得到了这些错误,有什么想法吗 代码1: public function getChatRoomData($uid, $name, $mess, $_roomID) { mysql_query("INSERT INTO _roomData(uid, userName, messageText, roomID, postedAt) VALUES('$uid', '$name', '$mess', '$_roomID', NOW())"); return

我创建了一个json输出,但是得到了这些错误,有什么想法吗

代码1:

public function getChatRoomData($uid, $name, $mess, $_roomID)
{
    mysql_query("INSERT INTO _roomData(uid, userName, messageText, roomID, postedAt) VALUES('$uid', '$name', '$mess', '$_roomID', NOW())");
    return mysql_query("SELECT * FROM _roomData WHERE roomID = '$_roomID';"); 

}
代码2:

if ($tag == 'roomEnter') {
            $userID = $_POST['_uniqeID'];
            $userName = $_POST['_name'];
            $userMessage = $_POST['_message'];
            $roomID = $_POST['_roomID'];
            $queryFunctions = $db->getChatRoomData($userID , $userName, $userMessage, $roomID);
            $rows = array();
                        while($result = mysql_fetch_assoc($queryFunctions)) 
                        {
                                $rows["uid"] = $result["uid"];
                                $rows["name"] = $result["userName"];
                                $rows["roomDetails"]["message"] = $result["messageText"];

                        }
                         echo json_encode($rows);
            }
Logcat错误:

07-30 18:59:46.843: E/JSON(26633): <br />
07-30 18:59:46.843: E/JSON(26633): <b>Parse error</b>:  syntax error, unexpected '}' in <b>/home/merlinga/public_html/_mess/index.php</b> on line <b>106</b><br />
07-30 18:59:46.944: E/JSON Parser(26633): Error parsing data org.json.JSONException: Value <br of type java.lang.String cannot be converted to JSONObject
07-30 19:02:30.293: E/JSON(26633): <br />
07-30 19:02:30.293: E/JSON(26633): <b>Parse error</b>:  syntax error, unexpected '}' in <b>/home/merlinga/public_html/_mess/index.php</b> on line <b>106</b><br />
07-30 19:02:30.293: E/JSON Parser(26633): Error parsing data org.json.JSONException: Value <br of type java.lang.String cannot be converted to JSONObject
07-30 18:59:46.843:E/JSON(26633):
07-30 18:59:46.843:E/JSON(26633):解析错误:语法错误,第106行/home/merlinga/public_html/_mess/index.php中出现意外“}”
07-30 18:59:46.944:E/JSON解析器(26633):错误解析数据org.JSON.JSONException:Value您的PHP代码中存在语法错误,这导致错误消息明显不是JSON输出,当您尝试将其视为JSON时,会导致更多错误


检查您的PHP代码,特别是第106行,看看是什么导致了这个问题。

您的PHP代码中有一个语法错误,这会导致一条明显不是JSON输出的错误消息,当您尝试将其视为JSON时,会导致更多错误


检查PHP代码,特别是第106行,看看是什么导致了问题。

这里还有一个错误。您正在循环的每个迭代中分配
$rows['..]=$results['xxx']
。您应该使用$rows[]=xxx,并为每次迭代向rows数组添加一个新数组或对象

修复您接收到的第一个语法错误,然后对另一个错误使用类似以下内容:

        $rows = array();
        while($result = mysql_fetch_assoc($queryFunctions)) 
        {
             $row = array();
             $row['uid'] = $result['uid'];
             $row['name'] = $result['userName'];
             // or just $rows[] = $result; 
             // see below.

             $row["roomDetails"] = array();
             $row["roomDetails"]["message"] = $result["messageText"];
             $rows[] = $row;
         }
        echo json_encode($rows);
使用
$rows[]=$results
而不是将结果映射到新数组或对象的原因:

优点:

  • 添加新属性/列时不必更新此层
  • 缺点

  • 同上。您不想公开的新属性/列可能会泄漏,并导致比必要时更大的HTTP响应,甚至更糟:存在安全风险

  • 您可能希望使用该层将表列映射到具有不同命名和聚合属性的视图模型


  • 这里还有一个错误。您正在循环的每个迭代中分配
    $rows['..]=$results['xxx']
    。您应该使用$rows[]=xxx,并为每次迭代向rows数组添加一个新数组或对象

    修复您接收到的第一个语法错误,然后对另一个错误使用类似以下内容:

            $rows = array();
            while($result = mysql_fetch_assoc($queryFunctions)) 
            {
                 $row = array();
                 $row['uid'] = $result['uid'];
                 $row['name'] = $result['userName'];
                 // or just $rows[] = $result; 
                 // see below.
    
                 $row["roomDetails"] = array();
                 $row["roomDetails"]["message"] = $result["messageText"];
                 $rows[] = $row;
             }
            echo json_encode($rows);
    
    使用
    $rows[]=$results
    而不是将结果映射到新数组或对象的原因:

    优点:

  • 添加新属性/列时不必更新此层
  • 缺点

  • 同上。您不想公开的新属性/列可能会泄漏,并导致比必要时更大的HTTP响应,甚至更糟:存在安全风险

  • 您可能希望使用该层将表列映射到具有不同命名和聚合属性的视图模型


  • 可以粘贴JSON输出吗?PHP代码的第106行是什么?这里还有一个错误。您正在循环的每个迭代中设置$rows['..]=$results['xxx']。您应该使用$rows[]=xxx,并为每次迭代向rows数组添加一个新数组或对象。也许您应该声明$rows[“roomDetails”]=array();然后$rows[“roomDetails”][“message”]=…@iSun您上面提供的代码的实际行号是多少?如果看到几行接近第106行:100到110或类似的内容,那将非常有帮助。您可以粘贴JSON输出吗?PHP代码的第106行是什么?这里还有一个错误。您正在循环的每个迭代中设置$rows['..]=$results['xxx']。您应该使用$rows[]=xxx,并为每次迭代向rows数组添加一个新数组或对象。也许您应该声明$rows[“roomDetails”]=array();然后$rows[“roomDetails”][“message”]=…@iSun您上面提供的代码的实际行号是多少?如果能在106行附近看到几行:100到110或类似的行,那将非常有帮助。