Php 使用android emulator访问本地数据库
我和你一起工作。在这里,我面临着几个问题:使用JSON标记。我不知道现在该怎么办。我想补充一点,我的本地主机是ar端口81。我刚刚分别在登录和注册url中更改了localhost:81/android\u login\u api/和localhost:81/android\u login\u api/。这是我的日志错误-Php 使用android emulator访问本地数据库,php,android,json,login,registration,Php,Android,Json,Login,Registration,我和你一起工作。在这里,我面临着几个问题:使用JSON标记。我不知道现在该怎么办。我想补充一点,我的本地主机是ar端口81。我刚刚分别在登录和注册url中更改了localhost:81/android\u login\u api/和localhost:81/android\u login\u api/。这是我的日志错误- 02-24 11:17:58.000: E/JSON(1364): <br /> 02-24 11:17:58.000: E/JSON(1364): <b&g
02-24 11:17:58.000: E/JSON(1364): <br />
02-24 11:17:58.000: E/JSON(1364): <b>Parse error</b>: syntax error, unexpected $end in <b>C:\xampp\htdocs\android_login_api\include\DB_Connect.php</b> on line <b>46</b><br />
02-24 11:17:58.011: E/JSON Parser(1364): Error parsing data org.json.JSONException: Value <br of type java.lang.String cannot be converted to JSONObject
02-24 11:17:58.011: D/AndroidRuntime(1364): Shutting down VM
02-24 11:17:58.011: W/dalvikvm(1364): threadid=1: thread exiting with uncaught exception (group=0x40a70930)
02-24 11:17:58.030: E/AndroidRuntime(1364): FATAL EXCEPTION: main
02-24 11:17:58.030: E/AndroidRuntime(1364): java.lang.NullPointerException
02-24 11:17:58.030: E/AndroidRuntime(1364): at com.example.androidhive.RegisterActivity$1.onClick(RegisterActivity.java:64)
02-24 11:17:58.030: E/AndroidRuntime(1364): at android.view.View.performClick(View.java:4202)
02-24 11:17:58.030: E/AndroidRuntime(1364): at android.view.View$PerformClick.run(View.java:17340)
02-24 11:17:58.030: E/AndroidRuntime(1364): at android.os.Handler.handleCallback(Handler.java:725)
02-24 11:17:58.030: E/AndroidRuntime(1364): at android.os.Handler.dispatchMessage(Handler.java:92)
02-24 11:17:58.030: E/AndroidRuntime(1364): at android.os.Looper.loop(Looper.java:137)
02-24 11:17:58.030: E/AndroidRuntime(1364): at android.app.ActivityThread.main(ActivityThread.java:5039)
02-24 11:17:58.030: E/AndroidRuntime(1364): at java.lang.reflect.Method.invokeNative(Native Method)
02-24 11:17:58.030: E/AndroidRuntime(1364): at java.lang.reflect.Method.invoke(Method.java:511)
02-24 11:17:58.030: E/AndroidRuntime(1364): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
02-24 11:17:58.030: E/AndroidRuntime(1364): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
02-24 11:17:58.030: E/AndroidRuntime(1364): at dalvik.system.NativeStart.main(Native Method)
02-2411:17:58.000:E/JSON(1364):
02-24 11:17:58.000:E/JSON(1364):解析错误:语法错误,第46行C:\xampp\htdocs\android\u login\u api\include\DB\u Connect.php中意外出现$end
02-24 11:17:58.011:E/JSON解析器(1364):错误解析数据org.JSON.JSONException:Value您的文件C:\xampp\htdocs\android\u login\u api\include\DB\u Connect.php
似乎包含语法错误。服务器返回一个HTML站点(包含有关此错误的信息),而不是JSON编码的结果字符串
JSONParser需要类似于“{somedata:true}”
的内容,但获取
和其他HTML标记,然后抛出JSONException
,最终返回null
(这本身会导致NullPointerException
)
你可能想看看。谢谢,但我不明白他们想说什么。解决办法是什么?我想说,我的localhost地址设置为10.0.2.2这并不是一个真正的解决方案,而是一个提示,提示您的错误可能来自哪里。你能发布我上面提到的文件的内容吗(或者至少是第46行的内容)?这可能有助于在我的php文件中找到作为结尾的语法错误。在第46行,那么第46行是脚本的最后一行吗?可能您忘记了关闭括号(如(
或{
)。如果您不在问题中发布文件内容,则很难判断文件中是否存在语法错误。如果这不是复制和粘贴的输入错误,则您没有关闭保存在$sql
变量中的字符串(通过stackoverflow的语法高亮显示很容易看到)。关闭此字符串将消除语法错误。
<?php
class DB_Connect {
// constructor
function __construct() {
$sql = "CREATE TABLE IF NOT EXISTS users(
uid int(11) primary key auto_increment,
unique_id varchar(23) not null unique,
name varchar(50) not null,
email varchar(100) not null unique,
encrypted_password varchar(80) not null,
salt varchar(10) not null,
created_at datetime,
updated_at datetime null
);
mysql_query($sql);
}
// destructor
function __destruct() {
// $this->close();
}
// Connecting to database
public function connect() {
require_once 'include/config.php';
// connecting to mysql
$con = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
// selecting database
mysql_select_db(DB_DATABASE);
// return database handler
return $con;
}
// Closing database connection
public function close() {
mysql_close();
}
}
?>