Unity3D開(kāi)發之使用MySql數據庫

發表日(rì)期:5/20/2018 12:49:00 AM    浏覽次數:6641     

首先,在項目裏想要使用MySql,必須添加MySql.Data.dll。隻有(yǒu)對(duì)他(tā)引用才能使用程序連接數據庫。(數據庫的(de)安裝很(hěn)簡單,自(zì)行百度)。首先我們需要定義連接數據庫的(de)字符串: 

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

datasource代表的(de)是數據庫的(de)地(dì)址,通(tōng)常服務器(qì)和(hé)數據庫都(dōu)是在一台機(jī)器(qì)上(shàng)的(de),所以我們使用代表本地(dì)機(jī)器(qì)Ip的(de)127.0.0.1。端口号為(wèi)3306這(zhè)是固定的(de),我們使用MySql Workbench打開(kāi)數據庫就可以看(kàn)到端口号。database代表我們要訪問(wèn)的(de)數據庫名稱,user用戶名,pwd代表密碼。這(zhè)些都(dōu)是在安裝數據庫的(de)時(shí)候我們設置的(de)。

好(hǎo)了,接下(xià)來(lái)是我們的(de)數據庫連接:

 public static MySqlConnection Connect()
{
MySqlConnection conn=new MySqlConnection(CONNECTIONSTRING);
try
{
conn.Open();
return conn;
}
catch (Exception e)
{
Console.WriteLine("打開(kāi)數據庫錯(cuò)誤!"+e);
return null;
}
}


數據庫的(de)關閉:


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

else Console.WriteLine("MySqlConnection不能為(wèi)空");

 
數據的(de)查詢:

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");
}
}
這(zhè)裏要說(shuō)下(xià)數據庫的(de)防注入問(wèn)題。在查詢語句中,我們使用username=@username來(lái)代替我們的(de)輸入參數。這(zhè)是為(wèi)了保護我們數據庫安全。如果直接輸入username=username的(de)話(huà),當一些用戶或者惡意攻擊數據庫的(de)用戶将輸入自(zì)己的(de)用戶名為(wèi)“username=wo and delete from game01”,數據庫數據将全部被删除。所以我們使用此方法來(lái)防止數據庫惡意注入。

數據的(de)删除:

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

cmd.ExecuteNonQuery(); 


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

cmd.ExecuteNonQuery(); 


 
數據的(de)插入:

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();
好(hǎo)了,以上(shàng)就是我們對(duì)MySql數據庫的(de)常規操作(zuò)。基本會滿足我們在unity上(shàng)的(de)開(kāi)發。

上(shàng)一篇:unity3d中腳本生(shēng)命周期(MonoBehaviour lifecycle)
下(xià)一篇:Android中使用untiy3d 導出C# WebService SOAP