請下載 Xmpp 軟體
如果要解決中文上的問題,安裝後請到: D:\xmpp\mysql\bin (本文章是安裝在D曹)
此路徑下找到
my.ini檔案下進行更改。
更改內容:
[mysqld]
default-character-set=utf8
[client]
default-character-set=utf8
init_connect='SET NAMES utf8'
再開啟MySql:
開啟後建立自己的資料庫: 本文資料庫名稱
corpus
再建立兩欄資料表 指令:
create table 資料表名稱(
ID integer auto_increment primary key,
Message VARCHAR(20));
若是資料表調整錯誤可以進行網頁頁面更正:
標記框框(解碼中文)
補充:
自動編號排列指令:
ALTER TABLE test AUTO_INCREMENT = 0
凍仁大大整理的筆記之分享(MySql 指令)~~
Unity(2018版本) 連接 MySQL 套件這裡提供兩個地方載點:
提取码:6rbi
載點2
----------------------------
Unity 操作(Script):
using UnityEngine;
using System;
using System.Collections;
using System.Data;
using MySql.Data.MySqlClient;
using System.Text;
public class DataBaseTest : MonoBehaviour
{
private bool writeDataBaseTable = false;
private string id = "ID(不必輸入)", message = "請輸入訊息";
void OnGUI()
{
// DataBase 連線按鈕
GUILayout.BeginArea(new Rect(Screen.width / Screen.width, Screen.height / Screen.height, 200, 30));
if (GUILayout.Button("Open DataBase InterNet"))
openDataBase();
GUILayout.EndArea();
// DataBase 連線訊息
GUILayout.BeginArea(new Rect(Screen.width / Screen.width, Screen.height / Screen.height * 30, 200, 30));
GUILayout.Label(CMySql.result);
GUILayout.EndArea();
// 連接DataBase後事件
if (CMySql.result != "")
{
GUILayout.BeginArea(new Rect(Screen.width / Screen.width, Screen.height / Screen.height * 60, 100, 30));
if(GUILayout.Button("寫入資料")){
writeDataBaseTable = true;
}
GUILayout.EndArea();
}
// 寫入資料庫 UI
if (writeDataBaseTable)
writeDataUI();
}
///
/// 寫入資料
///
void writeDataUI()
{
GUILayout.BeginArea(new Rect(Screen.width / Screen.width, Screen.height / Screen.height * 90, 100, 30));
id = GUILayout.TextField(id, 200);
GUILayout.EndArea();
GUILayout.BeginArea(new Rect(Screen.width / Screen.width * 100, Screen.height / Screen.height * 90, 100, 30));
message = GUILayout.TextField(message, 200);
GUILayout.EndArea();
GUILayout.BeginArea(new Rect(Screen.width / Screen.width, Screen.height / Screen.height * 120, 100, 30));
if (GUILayout.Button("寫入"))
CMySql.WriteTable( "test" ,id, message);
GUILayout.EndArea();
GUILayout.BeginArea(new Rect(Screen.width / Screen.width * 100, Screen.height / Screen.height * 120, 100, 30));
if (GUILayout.Button("取消"))
writeDataBaseTable = false;
GUILayout.EndArea();
}
///
/// 關閉應用程式
///
void OnApplicationQuit()
{
CMySql.closeSqlConnection();
}
///
/// openDataBase
///
void openDataBase()
{
string connectionString = string.Format("Server = {0}; Database = {1}; UserID = {2}; Password = {3};", CMySql.hostType, CMySql.dataBaseType, CMySql.idType, CMySql.passWordTpye);
CMySql.openSqlConnection(connectionString);
CMySql.myObjType = CMySql.GetDataSet(connectionString);
Debug.Log(CMySql.result);
}
}
資料庫 Script (C#):
/**
* 2017/8/30 8:10
* 連接Mysql
* 寫入資料(中文解決), 讀取資料
* MySql.Data.MySqlClient download path: https://dev.mysql.com/downloads/connector/net/1.0.html
* MySql.Data.MySqlClient download path: http://pan.baidu.com/s/1gePtERT
*/
using System.Collections.Generic;
using System.Data;
using System;
using MySql.Data.MySqlClient;
using System.Text;
using UnityEngine;
public class CMySql
{
// Just like MyConn.conn in Story Tolls before
public static MySqlConnection dbConnection;
// DataBase Ip
private static string host = "127.0.0.1";
public static string hostType
{
set { host = value; }
get { return host; }
}
// DataBase user Id
private static string id = "root";
public static string idType
{
set { id = value; }
get { return id; }
}
// DataBase Password
private static string passWord = "";
public static string passWordTpye
{
set { passWord = value; }
get { return passWord; }
}
// DataBase Name
private static string dataBase = "corpus";
public static string dataBaseType
{
set { dataBase = value; }
get { return dataBase; }
}
// 連線結果
public static string result = "";
// 讀取資 (欄位2)
static List MessageField2 = new List();
// DataSet
private static DataSet myObj;
public static DataSet myObjType
{
set { myObj = value; }
get { return myObj; }
}
// Connect to database
public static void openSqlConnection(string connectionString)
{
dbConnection = new MySqlConnection(connectionString);
dbConnection.Open();
result = dbConnection.ServerVersion;
}
// closeSql
public static void closeSqlConnection()
{
dbConnection.Close();
dbConnection = null;
}
// MySQL Query
public static void doQuery(string sqlQuery)
{
IDbCommand dbCommand = dbConnection.CreateCommand();
dbCommand.CommandText = sqlQuery;
IDataReader reader = dbCommand.ExecuteReader();
reader.Close();
reader = null;
dbCommand.Dispose();
dbCommand = null;
}
#region Get DataSet
public static DataSet GetDataSet(string sqlString)
{
DataSet ds = new DataSet();
try
{
MySqlDataAdapter da = new MySqlDataAdapter(sqlString, dbConnection);
}
catch (Exception e)
{
throw new Exception("SQL:" + sqlString + "\n");
e.Message.ToString();
}
return ds;
}
#endregion
// 轉utf8
public static string messageToUtf8(string message)
{
UTF8Encoding encoder = new UTF8Encoding();
byte[] bytes = Encoding.UTF8.GetBytes(message);
string utf8ReturnString = encoder.GetString(bytes);
return utf8ReturnString;
}
static string ID;
static string Message;
// 寫入資料表
public static void WriteTable(string DataBaseTable ,string id, string message)
{
MySqlCommand command = dbConnection.CreateCommand();
string sqlText = "select count(1) from " + DataBaseTable + " where Message=('" + message + "')";
MySqlCommand cmd1 = new MySqlCommand(sqlText, dbConnection);
int count = (int)(long)cmd1.ExecuteScalar();
if (count > 0)
{
Debug.Log("已經有資料囉");
}
else
{
ID = id;
Message = messageToUtf8(message);
command.CommandText = "Insert into " + DataBaseTable + "(ID, Message) value('" + ID + "','" + Message + "')";
command.ExecuteNonQuery();
Debug.Log("載入資料成功");
}
}
///
/// 資料庫查詢
///
///
///
public static void INQUIRE_TABLE(string dataBaseTitle, string message)
{
string sqlText = "select * from " + dataBaseTitle + " where Message='" + message + "'";
MySqlCommand cmd = new MySqlCommand(sqlText, mySqlConnection);
MySqlDataReader data = cmd.ExecuteReader();
while (data.Read())
{
try
{
UnityEngine.Debug.Log((data[0] + " -- " + data[1]));
}catch(Exception e)
{
data.Close();
closeSqlConnection();
}
}
data.Close();
}
}
結果圖:
※寫入資料後,記得Mysql 要重新讀取一次才會出現。
第二筆資輸入:
若是資料重復: