Непонятная работа с 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]);
  }
}

→ Ссылка