發表日(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)發。