0评论

Unity3D使用MySql数据库

文章来自https://blog.csdn.net/qq_33994566/article/details/79700901 2019-02-14 114浏览

想免费获取内部独家PPT资料库?观看行业大牛直播?点击加入腾讯游戏学院游戏开发行业精英群711501594

下面给分享的是使用MySql数据库的心得。

首先,在项目里想要使用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上的开发。

温馨提示:如果出现webservices连接不上数据库,看看是不是dll版本问题导致的。