You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在XAMPP数据库中按邮箱更新数据遇Android Networking服务器超时问题求助

解决Android Networking更新XAMPP数据库超时问题

先从你给出的信息来看,首先能发现的就是PHP代码不完整,这大概率是导致请求超时的原因之一,咱们一步步来排查和修复:

1. 修复PHP代码的核心问题

你的$query只写了一半,而且缺少错误处理逻辑,这会让数据库请求卡住或者报错,进而导致Android端超时。给你补全并优化代码:

<?php
if(isset($_POST['update'])) {
    $hostname = "localhost";
    $username = "root";
    $password = "";
    $databaseName = "truck_loader";

    // 建立连接并检查错误
    $connect = mysqli_connect($hostname, $username, $password, $databaseName);
    if (!$connect) {
        // 输出连接错误,方便调试
        die("连接失败: " . mysqli_connect_error());
    }

    $name = $_POST['name'];
    $email = $_POST['email'];
    $mobile = $_POST['mobile'];
    $address = $_POST['address'];

    // 补全UPDATE语句,注意这里要根据你的表名和主键调整,假设主键是email(因为你是按邮箱更新)
    $query = "UPDATE your_table_name SET name = ?, mobile = ?, address = ? WHERE email = ?";
    // 使用预处理语句,防止SQL注入同时更安全
    $stmt = mysqli_prepare($connect, $query);
    mysqli_stmt_bind_param($stmt, "ssss", $name, $mobile, $address, $email);
    
    if(mysqli_stmt_execute($stmt)){
        echo "更新成功";
    } else {
        echo "更新失败: " . mysqli_error($connect);
    }

    mysqli_stmt_close($stmt);
    mysqli_close($connect);
}
?>

注意:把your_table_name换成你实际的表名,WHERE条件要对应你用来匹配更新记录的字段(比如如果主键是id,就改成WHERE id = ?并绑定对应的参数)

2. Android端的关键配置检查

(1)请求URL不要用localhost

如果你是用Android模拟器或者真机测试,localhost指向的是设备本身,不是运行XAMPP的电脑。要换成电脑的内网IP地址,比如http://192.168.1.100/update.php(可以在电脑的网络设置里查到内网IP)。

(2)设置合理的超时时间

在Android Networking的请求里显式设置超时,避免默认超时过短:

AndroidNetworking.post("你的请求URL")
    .addBodyParameter("update", "1")
    .addBodyParameter("name", "xxx")
    .addBodyParameter("email", "xxx")
    // 其他参数...
    .setTimeout(30000) // 设置30秒超时,根据需求调整
    .build()
    .getAsJSONObject(...);

(3)处理明文HTTP权限(Android 9+)

XAMPP默认用HTTP协议,Android 9及以上默认禁止明文HTTP请求,需要在AndroidManifest.xml的<application>标签里添加:

android:usesCleartextTraffic="true"

(4)确保添加INTERNET权限

在AndroidManifest.xml里确认有这个权限:

<uses-permission android:name="android.permission.INTERNET" />

3. XAMPP服务器端的排查

  • 确认Apache和MySQL服务都已经在XAMPP控制面板中启动。
  • 检查电脑的防火墙是否允许80端口(XAMPP默认Apache端口)的入站请求,暂时关闭防火墙测试是否能解决问题。
  • 可以直接在浏览器里访问你的PHP文件,传入参数测试是否能正常执行(比如http://192.168.1.100/update.php?update=1&name=test&email=test@xx.com&mobile=123&address=xxx),看是否能返回正确的结果,排除PHP本身的问题。

先按这些步骤排查,应该能解决超时的问题,如果还有问题可以补充更多Android端的代码细节~

内容的提问来源于stack exchange,提问作者Prajakta Thorat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:31:39