我最近开始开发一个flutter/dart项目,获得一些基本的页面设置和导航。
我有一个MySQL数据库,我想合并,我发现mysql 1包来帮助我做到这一点。我已经导入了包,并使用的例子发现here。
我遇到的问题是,我似乎看不到数据库中的任何数据。
在我的主. dart 我有这个:
import 'dart:async';
import 'package:mysql1/mysql1.dart';
Future main() async {
// Open a connection (testdb should already exist)
final connection = await MySqlConnection.connect(new ConnectionSettings(
host: '10.0.2.2',
port: 3306,
user: 'root',
password: 'gDrP^6W42f9Z',
db: 'EntomologyApp',
));
var results = await connection.query('select * from Account'); // expected results
print(results);
// Finally, close the connection
await connection.close();
}
在尝试了这么多不同的方法,但没有找到任何真实的的解决方案后,我不知道下一步该怎么做。
在这里,我希望与MySQL DB建立连接,并通过connection.query
select语句访问数据。然后我希望它打印出结果,以便我可以澄清有结果。
当我在SQL工作台中运行完全相同的查询时,我得到的是我为测试而插入的虚拟数据的结果,但在这里,我在控制台中得到的只是'()',我假设这只是一个空的潜在记录列表。
现在,我知道这看起来像是一个连接问题,但是如果我把这行代码放在其他查询代码之上:
await connection.query(
'CREATE TABLE users (id int NOT NULL AUTO_INCREMENT PRIMARY KEY, name varchar(255), email varchar(255), age int)');
它工作并在workbench中创建了一个'users'表,然后每当我运行之后,它都会说一个名为'users'的表已经存在。我这里有这个代码只是为了测试表创建工作。我想访问'Account'表中的数据,其中现在有很多记录。
编辑:我现在已经测试了插入一条记录:await connection.query('insert into Account (email, password) values ("bob@bob.com", "password123")');
并且它成功地在Account表中创建了一条记录,所以creation语句似乎可以工作,但select不行。
2条答案
按热度按时间iovurdzv1#
显然,您必须更改ConnectionSettings和表名以适应您的设置,但以下代码对我来说很有效:
am46iovg2#
我没有这个问题的答案或解决方案,在这篇文章的故障排除过程中,我使用了http package,并遵循了CodingCafe on YouTube的一个非常有见地的直接教程系列,它帮助我现在与我的Flutter Dart项目和我的后端SQL数据库建立了可靠的连接,我现在已经迁移到XAMPP服务器。
任何努力使用mysql1的人,我推荐http,因为它在使用json有效负载时似乎更灵活。
谢谢你的帮助