Unity3D开发之使用MySql数据库

发表日期:5/20/2018 12:49:00 AM    浏览次数:7681     

首先,在项目里想要使用MySql,必须添加MySql.Data.dll。只有对他引用才能使用程序连接数据库。(数据库的安装很简单,自行百度)。首先我们需要定义连接数据库的字符串: 

 public const string CONNECTIONSTRING = "datasource=127.0.0.1;port=3306;database=game02;user=root;pwd=root;";

datasource代表的是数据库的地址,通常服务器和数据库都是在一台机器上的,所以我们使用代表本地机器Ip的127.0.0.1。端口号为3306这是固定的,我们使用MySql Workbench打开数据库就可以看到端口号。database代表我们要访问的数据库名称,user用户名,pwd代表密码。这些都是在安装数据库的时候我们设置的。

好了,接下来是我们的数据库连接:

 public static MySqlConnection Connect()
{
MySqlConnection conn=new MySqlConnection(CONNECTIONSTRING);
try
{
conn.Open();
return conn;
}
catch (Exception e)
{
Console.WriteLine("打开数据库错误!"+e);
return null;
}
}


数据库的关闭:


public static void CloseConnection(MySqlConnection conn)
{
if(conn!=null) conn.Close();

else Console.WriteLine("MySqlConnection不能为空");

 
数据的查询:

MySqlDataReader reader = null;
try
{
MySqlCommand command = new MySqlCommand("select * from user where username=@username " +
"and password=@password", conn);
command.Parameters.AddWithValue("username", username);
command.Parameters.AddWithValue("password", password);
reader = command.ExecuteReader();
if (reader.Read())
{
int id = reader.GetInt32("id");
}
}
这里要说下数据库的防注入问题。在查询语句中,我们使用username=@username来代替我们的输入参数。这是为了保护我们数据库安全。如果直接输入username=username的话,当一些用户或者恶意攻击数据库的用户将输入自己的用户名为“username=wo and delete from game01”,数据库数据将全部被删除。所以我们使用此方法来防止数据库恶意注入。

数据的删除:

MySqlCommand cmd = new MySqlCommand("delete from user where id = @id", conn);
cmd.Parameters.AddWithValue("id", 18);

cmd.ExecuteNonQuery(); 


 
数据的更新:
MySqlCommand cmd = new MySqlCommand("update user set password = @pwd,la=@la where id = 14", conn);
cmd.Parameters.AddWithValue("pwd", "sikiedu.com");

cmd.ExecuteNonQuery(); 


 
数据的插入:

MySqlCommand cmd = new MySqlCommand("insert into user set username ='" + username + "'" + ",password='" + password + "'", conn);
MySqlCommand cmd = new MySqlCommand("insert into user set username=@un , password = @pwd", conn);

cmd.Parameters.AddWithValue("un", username);
cmd.Parameters.AddWithValue("pwd", password);

cmd.ExecuteNonQuery();
好了,以上就是我们对MySql数据库的常规操作。基本会满足我们在unity上的开发。

上一篇:unity3d中脚本生命周期(MonoBehaviour lifecycle)
下一篇:Android中使用untiy3d 导出C# WebService SOAP