我在 flutter 中有一个提交表单函数,它将接收三个参数并将它们发送到 php 后端以对我的 sql 数据库执行更新操作。 sql数据库是主机 并使用 xampp 实现。
static Future<bool> submitForm(
String userId, String userName, String userEmail) async {
final body = {
'id': userId,
'name': userName,
'email': userEmail,
'action': 'edit'
};
final headers = {'Content-Type': 'application/json'};
try {
var url = Uri.parse('${databaseUrl}/fetch_data.php');
var response = await http.post(
url,
headers: headers,
body: json.encode(body),
);
if (response.statusCode == 200) {
// Success!
bool result = response.body == 'true';
return result;
} else {
// Handle the error
throw Exception('Failed to edit user');
}
} catch (e) {
print('Error submitting form: $e');
rethrow;
}
}
下面是我的 php 脚本 $data = json_decode(file_get_contents('php://input'), true);
$id = $data['id'];
$name = $data['name'];
$email = $data['email'];
$sql = "UPDATE user SET name=?, email=? WHERE id=?";
$stmt = mysqli_prepare($conn, $sql);
mysqli_stmt_bind_param($stmt, "sss", $name, $email, $id);
if (mysqli_stmt_execute($stmt)) {
http_response_code(200);
return 'true';
} else {
http_response_code(500);
return 'Internal Server Error';
error_log("SQL error: " . mysqli_error($conn));
}
mysqli_stmt_close($stmt);
mysqli_close($conn);
出于某种原因,我无法在发出请求后更新表中的数据。我在 flutter app 中收到的响应状态码为 200,正文为空。我正在使用 localtunnel 托管 php 文件,所以我不太确定如何查看 php 中的日志以进行调试。
提前感谢任何帮助。