Непонятная работа с mySQL на Flutter
Хочу сделать регистрацию пользователей в своем приложении, использую mysql1, добавляю новые записи в таблицы без проблем, но вот при вызове SELECT выдает исключение. Код использовал из документации. Не могу понять где ошибка.
import 'dart:async';
import 'package:mysql1/mysql1.dart';
Future main() async {
final conn = await MySqlConnection.connect(ConnectionSettings(
host: 'localhost',
port: 3306,
user: 'root',
db: 'app',
password: '135797531AaA'));
var result = await conn.query(
'INSERT INTO users (name, email, age) values ("artem", "email", 25)',
);
print('Inserted row id=${result.insertId}');
var userId = 1;
var results =
await conn.query('SELECT name FROM users WHERE id = ?', [userId]);
print(result);}
Ответы (1 шт):
Автор решения: RockInMyHead
→ Ссылка
Спасибо наблюдательному fengzee. Это проблема со стороны библиотеки. В качестве временного решения используйте задержку между подключением к бд и запросом. Ниже оставлю рабочий код :
import 'dart:async';
import 'package:mysql1/mysql1.dart';
Future main() async {
final conn = await MySqlConnection.connect(ConnectionSettings(
host: 'localhost',
port: 3306,
user: 'root',
db: 'app',
password: '135797531AaA'));
var result = await conn.query(
'INSERT INTO users (name, email, age) values ("artem", "email", 25)',
);
print('Inserted row id=${result.insertId}');
var userId = 2;
await Future.delayed(Duration(seconds: 1)); // Задержка
var results =
await conn.query('SELECT name FROM users WHERE id = ?', [userId]);
for (var row in results) {
print(row[0]);
}
}
