【问题标题】:Another PHP JSONException: Value <br of type java.lang.String cannot be converted to JSONObject另一个 PHP JSONException:Java.lang.String 类型的值 <br 无法转换为 JSONObject
【发布时间】:2017-01-10 21:24:23
【问题描述】:

所以我正在尝试在我的 android 应用程序上创建一个注册站点。我一直在关注 Toni Kami 一步一步的指南

https://www.youtube.com/watch?v=QxffHgiJ64M&index=1&list=PLe60o7ed8E-TztoF2K3y4VdDgT6APZ0ka

Atm 我处于完全停止状态,长达数小时试图修复我遇到的 json 异常,我现在拼命向您的优秀人员寻求帮助。

错误是这样的:

RegisterActivity.java = http://pastebin.com/0zy3UZYc

RegisterRequest.java = http://pastebin.com/RZXfHcmn

register.php = http://pastebin.com/pAuAGnTt

我读到,在大多数情况下,问题出在 URL 上,但是当我将 url 粘贴到 chrome 中时,它会回显连接。

这是返回字符串: I/tagconvertstr: [
注意:未定义变量:C:\xampp\htdocs\Yield\PhpFiles\register.php 中的 con in 12

警告:mysqli_prepare() 期望参数 1 为 mysqli,C:\xampp\htdocs\Yield\PhpFiles\register.php 中给出的 null b> 第 12 行

警告:mysqli_stmt_bind_param() 期望参数 1 为 mysqli_stmt,C:\xampp\htdocs\ 中给出的 null Yield\PhpFiles\register.php13 行

警告:mysqli_stmt_execute() 期望参数 1 为 mysqli_stmt,在 C:\xampp\htdocs\Yield\PhpFiles\register.php
14 行

它抱怨的几行是:

$statement = mysqli_prepare($con, "INSERT INTO users (name, username, age, password) VALUES (?, ?, ?, ?)");
    mysqli_stmt_bind_param($statement, "siss", $name, $username, $age, $password);
    mysqli_stmt_execute($statement);
                                                                       ]

我真的希望有人能在这里启发我,并随时要求提供信息。

谢谢!

【问题讨论】:

  • echo ("connected");
  • 我知道,但这不是回声。我已经尝试删除它们
  • 根据你的错误截图,是的。如果您删除了回声,那么您应该会看到不同的错误消息,它是什么。
  • 刚刚更新了截图。对此感到抱歉
  • 呸,我不认为这是我上次评论的 POST 请求...所以忽略这一点,您应该能够在 IDE 中查看完整的响应字符串。

标签: java php android jsonexception


【解决方案1】:

使用

Log.i("tagconvertstr", "["+response+"]"); 查看返回的响应

行前 JSONObject jsonResponse = new JSONObject(response);

在RegisterActivity.java中

【讨论】:

    【解决方案2】:

    这是因为mysql_和mysqli_混合在一起

    如果你把一切都做mysqli_

    <?php
    
    $con = mysqli_connect("127.0.0.1","root","", "yield");
    
    
        $name = $_POST["name"];
        $age = $_POST["age"];
        $username = $_POST["username"];
        $password = $_POST["password"];
        $statement = mysqli_prepare($con, "INSERT INTO users (name, username, age, password) VALUES (?, ?, ?, ?)") or die (mysqli_error($con));
        mysqli_stmt_bind_param($statement, "siss", $name, $username, $age, $password);
        mysqli_stmt_execute($statement);
    
        $response = array();
        $response["success"] = true;  
    
        echo json_encode($response);
    ?>
    

    然后就可以了!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-03-08
      • 1970-01-01
      • 2012-05-03
      • 1970-01-01
      • 1970-01-01
      • 2017-12-19
      相关资源
      最近更新 更多