要在Flutter应用程序中使用PHP从MySQL获取数据并设置样式,你需要完成以下几个步骤:
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "database_name";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
?>
<?php
$sql = "SELECT id, name, email FROM users";
$result = $conn->query($sql);
$data = array();
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
$data[] = $row;
}
} else {
echo "0 results";
}
$conn->close();
header('Content-Type: application/json');
echo json_encode($data);
?>
pubspec.yaml
文件中添加http
包来处理HTTP请求。dependencies:
flutter:
sdk: flutter
http: ^0.13.3
import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;
class User {
final int id;
final String name;
final String email;
User({required this.id, required this.name, required this.email});
factory User.fromJson(Map<String, dynamic> json) {
return User(
id: json['id'],
name: json['name'],
email: json['email'],
);
}
}
class UserListScreen extends StatefulWidget {
@override
_UserListScreenState createState() => _UserListScreenState();
}
class _UserListScreenState extends State<UserListScreen> {
List<User> users = [];
@override
void initState() {
super.initState();
fetchUsers();
}
Future<void> fetchUsers() async {
final response = await http.get(Uri.parse('http://yourserver.com/get_users.php'));
if (response.statusCode == 200) {
List<dynamic> jsonResponse = json.decode(response.body);
setState(() {
users = jsonResponse.map((user) => User.fromJson(user)).toList();
});
} else {
throw Exception('Failed to load users');
}
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Users'),
),
body: ListView.builder(
itemCount: users.length,
itemBuilder: (context, index) {
return ListTile(
title: Text(users[index].name),
subtitle: Text(users[index].email),
);
},
),
);
}
}
json_encode
确保PHP返回的数据是有效的JSON格式。header("Access-Control-Allow-Origin: *");
通过上述步骤,你可以在Flutter应用中使用PHP从MySQL获取数据,并通过适当的样式展示给用户。确保前后端的通信顺畅,处理好数据的安全性和性能优化。
领取专属 10元无门槛券
手把手带您无忧上云