UnityWebGL连接MySQL数据库的方法

原文地址
首先是用的体unity加载PHP的代码,由于加载可以传参,但是返回只能是字符串格式,因此,需要给解析的变量名编入数组,再加上分隔符,收到返回后然后再用正则表达式分割字符串。

这里是php去读取MySQL然后编成字符串的代码。

 
header("Access-Control-Allow-Credentials: true");
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: POST, GET, OPTIONS');
header('Access-Control-Allow-Headers: Accept, X-Access-Token, X-Application-Name, X-Request-Sent-Time');
 
if (!empty($_POST["sql"]))
{
    $sql = $_POST["sql"];
    $table = $_POST["table"];
	$name = $_POST["name"];
}
 
$servername = "10.1111111";
$username = "aaa";
$password = "aaa";
 
$name1 = explode('@',$name); 
 
$conn=mysql_connect($servername,$username,$password) or die("error connecting") ; //连接数据库
 
mysql_query("set names 'utf8'"); //数据库输出编码 应该与你的数据库编码保持一致.南昌网站建设公司百恒网络PHP工程师建议用UTF-8 国际标准编码.
 
mysql_select_db($table); //打开数据库
  
$result = mysql_query($sql,$conn); //查询
 
//echo $name;
 
while($row = mysql_fetch_array($result))
{
	for($i=0;$i<count($name1);$i++)
	{
		$name2=$name1[$i];
		//echo $name1;
		//echo $name2;
		if(array_key_exists($name2,$row))
		{
			echo $row[$name2];
			if($i<(count($name1)-1))
			{
				echo "###";
			}	
		} 
	}	
echo "@@";
} 
?>

这是C#加载PHP的返回的代码,将参数传递进去,www加载PHP。

     /// 
     /// 调取mysql 中KKS
     /// sql 语句   表库名  变量名列表
     /// 
     public IEnumerator getKKSWithPHP(string sql, string table, List<string> nameList,Action< List<string>,string> callBack)
     {
         yield return new WaitForSeconds(0.5f);
         WWWForm form = new WWWForm();
         string name = "";
         for (var i = 0; i < nameList.Count; i++)
         {
             name += nameList[i];
             if (i < nameList.Count - 1)
             {
                 name += "@";
             }
         }
 
         form.AddField("sql", sql);
         form.AddField("table", table);
         form.AddField("name", name);
 
         WWW www = new WWW("http://11.11.11.11/index0.php", form);
 
         yield return www;
         if (string.IsNullOrEmpty(www.error))
         {
             //Debug.LogError(Time.time);
             callBack(nameList,www.text);
         }
         else
         {
             Debug.LogError(www.error);
             callBack(null, null);
         }
     }

此时,根据解析完的字符串,遍历变量的数组,使用反射获取值。
注意,php代码需要部署在服务器,否则加载完不会运行,只是当做一段txt。

你可能感兴趣的:(Unity,开发)