Unity通过Php访问MySql

来源:互联网 发布:广西广电网络初装费用 编辑:程序博客网 时间:2024/06/03 12:34

1.上网下载一个PHPNOW,文件包非常小,但是功能却很强大(下载链接 http://pan.baidu.com/s/1bnpjwUN)。

2.安装PHPNOW,注意不要有中文路径,安装方法也很简单,解压后双击Init.cmd根据提示做就可以。


3.安装后可以在浏览器上输入:localhost/index.php,浏览器会打印出PHPNOW的相关配置信息。

4.安装Dreamweaver CS6,用于编写php代码。

5.使用phpMyAdmin登录数据库,在浏览器中输入localhost/phpMyAdmin

导入一个数据库:附件中有

添加一个用户:用户名和密码要与unity中的登录名和密码一致:wenjian  、1234



6.Unity代码编写

using UnityEngine;using System.Collections;using System.Xml;using System.IO;using System.Collections.Generic;public class ConnectPhpAndMySql : MonoBehaviour {// Use this for initializationstring url = "http://localhost/ConnectMySql/UnityGetUserMessage.php";//userdata的数据。private XmlNodeList xmlList;private List<string[]> UserMessage=new List<string[]>();void Start () {}// Update is called once per framevoid Update () {}void OnGUI(){
<span style="white-space:pre"></span>//登录数据库if(GUI.Button(new Rect (10, 100, 100, 20), "Login")) {WWWForm form = new WWWForm();form.AddField("Flat","Login");form.AddField("Name", "wenjian");form.AddField("Password", "1234");WWW www = new WWW(url, form);StartCoroutine(LoginPhp(www));}
<span style="white-space:pre"></span>//获取内容if(GUI.Button(new Rect (10, 150, 100, 20), "GetMessage")){WWWForm form = new WWWForm();form.AddField("Flat","GetMessage");form.AddField("Name", "wenjian");form.AddField("Password", "1234");form.AddField("Start_int", "2");form.AddField("End_int", "5");WWW www = new WWW(url, form);StartCoroutine(GetMessagePhp(www));}
<span style="white-space:pre"></span>//插入一行数据if(GUI.Button(new Rect(10,200,100,20),"InsertMessage")){WWWForm form = new WWWForm();form.AddField("Flat","InsertMessage");form.AddField("Name", "wenjian");form.AddField("Password", "1234");form.AddField("Message", "Insert,he,wen,jian");WWW www = new WWW(url, form);StartCoroutine(InsertMessagePhp(www));}<span style="white-space:pre"></span>//更新一行内容if(GUI.Button(new Rect(10,250,100,20),"UpdateMessage") ){WWWForm form = new WWWForm();form.AddField("Flat","UpdateMessage");form.AddField("Name", "wenjian");form.AddField("Password", "1234");form.AddField("Id", "3");form.AddField("Setdata", "lkj");WWW www = new WWW(url, form);StartCoroutine(UpdateMessagePhp(www));}
<span style="white-space:pre"></span>//删除一行内容if(GUI.Button(new Rect(10,300,100,20),"DeleteMessage") ){WWWForm form = new WWWForm();form.AddField("Flat","DeleteMessage");form.AddField("Name", "wenjian");form.AddField("Password", "1234");form.AddField("Id", "2");WWW www = new WWW(url, form);StartCoroutine(DeleteMessagePhp(www));}}IEnumerator LoginPhp(WWW www){yield return www;Debug.Log(www.text);//string[] songNames = www.text.Split(',');}
<span style="white-space:pre"></span>//把数据与mxl的形式进行数据分析IEnumerator GetMessagePhp(WWW www){Debug.Log (Time.time);yield return www;Debug.Log(www.text);XmlDocument xmlDoc = new XmlDocument();string aa=@"<?xml version=""1.0"" encoding=""UTF-8""?> ";aa += www.text;Debug.Log(aa);xmlDoc.LoadXml(www.text);//root = xmlDoc.SelectSingleNode("myRoot");xmlList=xmlDoc.SelectNodes("myRoot/Message");Debug.Log ("UserData.length=" + xmlList.Count);Debug.Log("------"+xmlList[0].InnerText);for(int jj=0;jj<xmlList.Count;jj++){  string strAge = xmlList[jj].InnerText;  string[] arr=strAge.Split(',');Debug.Log ("UserData=" + strAge);UserMessage.Add(arr);}Debug.Log("========"+UserMessage[0].Length);for(int i=0;i<UserMessage.Count;i++){for(int j=0;j<UserMessage[i].Length;j++){Debug.Log(UserMessage[i][j]);}}//foreach(XmlElement xmlElement1 in xmlList)//{//XmlNodeList xmlNodeList1= xmlElement1.ChildNodes;////string str;//XmlNodeList subAgeNodes = ((XmlElement)xmlElement1).GetElementsByTagName("td"); //for(int jj=0;jj<subAgeNodes.Count;jj++)//     {  //string strAge = subAgeNodes[jj].InnerText;  //Debug.Log ("UserData=" + strAge);//}  //}//string[] songNames = www.text.Split(',');Debug.Log (Time.time);}IEnumerator InsertMessagePhp(WWW www){yield return www;Debug.Log(www.text);}IEnumerator UpdateMessagePhp(WWW www){yield return www;Debug.Log(www.text);}IEnumerator DeleteMessagePhp(WWW www){yield return www;Debug.Log(www.text);}}
7.PHP代码

<?phpfunction LoginMySql(){ $name= $_REQUEST['Name'];        $password = $_REQUEST['Password'];    $connect = mysql_connect('localhost', $name, $password)   or die('数据库连接失败: ' . mysql_error());//echo '<BR><b>第一步:</b>成功建立连接! '; mysql_query("set names utf8;");$db = 'samples';mysql_select_db($db) or die('Could not select database ('.$db.') because of : '.mysql_error());//echo '<b>第二步:</b> 成功连接到 ('.$db.') !</BR>';//echo "\n";}function GetMySqlMessage(){echo "<myRoot>\n";$List='userdata';$Start_int=$_REQUEST['Start_int'];//echo $Start_int;$End_int=$_REQUEST['End_int'];//echo $End_int;//$query="SELECT * FROM '$List' limit '$start_int','$End_int'";$query="SELECT * FROM $List limit $Start_int,$End_int"; //echo $query;$result = mysql_query($query) or die('Query failed: ' . mysql_error());$count = 0;while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {$str="";   echo "\t<Message>\n";   foreach ($line as $col_value) {  // echo "\t\t<td>$col_value</td>\n";  /* if($col_value==null||$col_value=="")   {   $str=$str."".",";   continue;   } */   $str=$str.$col_value.",";     }   echo $str;   $count++;   echo "\t</Message>\n";}echo "</myRoot>\n";}function InsertMessage(){$Message=$_REQUEST['Message'];//插入一行内容$result="INSERT INTO userdata (Data1,Data2,Data3,Data4 ) VALUES (";$arr=explode(',', $Message);$int=0;$int_end=count($arr);echo count($arr);echo "\n";for($int=0;$int<$int_end-1;$int++){$result=$result."'".$arr[$int]."'".",";}$result=$result."'".$arr[$int_end-1]."'";$result=$result.")";echo $result;echo "\n";$result="INSERT INTO userdata (Data1,Data2,Data3,Data4 ) VALUES ('$arr[0]','$arr[1]','$arr[2]','$arr[3]')";echo $result;echo "\n";//mysql_query($result)or die('insert error'.mysql_error());mysql_query($result)or die('insert error'.mysql_error());}function UpdateMessage(){$Id=$_REQUEST['Id'];$Setdata=$_REQUEST['Setdata'];mysql_query("update userdata SET Data1 = '$Setdata' WHERE Id = '$Id' ") or die('set Error: ' . mysql_error());}function DeleteMessage(){$Id=$_REQUEST['Id'];//删除 fname='wenjian' and lname='31'mysql_query("delete from userdata where Id='$Id' ") or die('delete Error: ' . mysql_error());}?><?php$flat=$_REQUEST['Flat'];switch($flat){case 'Login':LoginMySql();echo "Login";break;case'GetMessage':LoginMySql();GetMySqlMessage();break;case "InsertMessage":LoginMySql();InsertMessage();break;case "UpdateMessage":LoginMySql();UpdateMessage();break;case"DeleteMessage":LoginMySql();DeleteMessage();break;}?>


附件:

http://download.csdn.net/download/he_wen_jian/8218495#6874737-tsina-1-16206-3048ae643c93bac2c9a415075e9789bc


0 0