Unity通过Php访问MySql

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 initialization
		string url = "http://localhost/ConnectMySql/UnityGetUserMessage.php";
	//userdata的数据。
	private XmlNodeList xmlList;
	private List<string[]> UserMessage=new List<string[]>();
	void Start () {
		
	}
	
	// Update is called once per frame
	void 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代码

<?php

	
	function 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.youkuaiyun.com/download/he_wen_jian/8218495#6874737-tsina-1-16206-3048ae643c93bac2c9a415075e9789bc


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值