当前位置: 首页>前端>正文

Unity3d连接数据库 unity如何连接数据库

最近有项目需要用到数据库,网上有不少资料,但是整理后发现,那些资料对于完全没有

PHP+MySQL 经验的人来说还是很难理解,所以分享一下自己的学习经验,同时也希望那些有经验的大神们能指点一下:

需要用到的软件:

PC_webserver


此服务器套件包自带 php 环境和 Phpcms V9 最新版,适合不懂 php 环境配置的新手用来在本机调试 Phpcms ,安装过程极其简单,下了不会安装的,回家面壁思过吧 )

下载链接:

 

phpcms.cn/html/2011/phpcms_0111/54.html (因为权限不够,不给发带链接的,自己在前面加上www.吧)

(温馨小提示,安装完毕之后,把

wwwroot 文件夹里面的东西全部清除)

 

phpDesigner 8

(这是一个编译器,我是用来编译

PHP 代码的,我觉得这个还是比较方便的,你们也可以选择其他的编译器的,这个不是很重要的,链接就自己问度娘吧)

 

上面的东西都下载完毕并安装成功之后,那么就开始了进入连接数据库的步骤了

 

第一步:

我们打开浏览器,输入地址:

localhost/phpmyadmin


我们会看到这样一个界面,账号和密码都是:

admin ,输入账号和密码之后,我们点击“执行”按钮


这时,就会进入这样的一个界面:


这个界面就是用来操作

mysql 数据库的

 

第二步:

创建一个新的数据库:


点击这个按钮,进入创建数据库的界面



 

在红框的位置填上我们需要的数据库名,填完之后,点击“创建”按钮

这时我们看向左边,就多了一个名为

xingchen 的数据库


 

第三步:

创建一个新的表单


点击我们刚刚创建的数据库,会出现这样的一个界面


名字就是你要创建的表单的名字,假设我现在的表单是要用来处理游戏的最高得分的,那么表单名字就设置为

scores ,字段数的话,你可以理解为下面这样的一种形式,


有细心的童鞋会发现,我在上面的表单里面,填的字段数量是

2 ,为什么是 2 呢?首先在保存用户得分的时候,分数是必须要的了,这个就占用了一个字段,上传的这个分数,我们又怎么判断是那个玩家的得分呢,最好的方法就是根据用户登陆时的名字,这个又占了一个字段,所以现在是两个字段了,这时我们点击“执行”按钮


弹出了下面的界面


 

第一个字段,我们保存的是用户名,所以名字就定义为

name ,类型就是 Text ,第二个字段,我们保存的是用户的得分,所以名字就定义为 scores ,类型为 int ,在类型里面是有很多可以选择的项的,大家可以根据自己的需求来定义

有一点我在这里说明一下,那些个类型我也不是很清楚,那个长度到底是进制位还是字节数,希望熟悉这个的大神能指点一二。

 

全部输入完成之后,就点击“保存”按钮,把滚动条往下面拖就看见了,点击之后,我们看向左边的地方会多出一个名为

scores 的表单,如下图:


现在我们进入这个表单,会出现下图:


大家看上面,有一个红色的局域,说是“没有已定义的索引”,这是因为表单还没有设定索引值的原因



我们点击这个“执行”按钮



选定索引的字段和大小之后,点击“保存”按钮



这时我们回到这个表单,发现红色的局域已经没有了,说明指定索引成功了

 

第四步:

插入简单的数据


现在我们找到我们刚刚创建的表单,点击“插入”按钮,如下图:


 

点击插入之后会出现这样一个界面


我在上面往表单插入的数据是:字段

name 的值为: xingchen ,字段 scores 的值为: 10000 ,现在我们点击“执行”按钮,点击之后就会出现下面的界面,如图:


在这个界面里面,我们再点击“浏览”按钮,进入表单查看我们插入的数据,进入表单之后我们看到这样的一个界面,大家在这个界面看到,我们刚刚插入的数据的值

 


 

第五步:

编写

PHP 逻辑代码

首先让我们打开之前下载的

php 编译器( phpDesigner 8 ), 新建一个文件

 

选择我们要编译的语言,现在我选择的是

php ,如下图:


 

上传得分的

PHP 代码:

<?php

 

// 

首先是连接数据库

// $ 

是 php 定义一个变量的

// mysql_connect 

一看这个函数的英文翻译,我们就知道这个是用来干嘛的了,没错,你没理解错,这就是用来连接 mysql 数据库的

// mysql_connect 

有三个参数要填,第一个是服务器名,第二个是用户名,第三个就是密码

// or die 

在这里我是用来返回异常信息的,如果连接不上数据库的话,就返回异常

$db =mysql_connect("localhost","admin","admin") ordie('Unable to connect :' .mysql_error()) ;

 

// mysql_select_db 

是用来连接表单的,现在我连接的表单名为: xingchen ,如果连接不上,照样异常返回

mysql_select_db('xingchen') or die('Unableto connect to the server');

 

// $_POST 

这个函数是用来获取从  U3D  上传上来的数据的

// $_POST['name'] 

的意思就是获取一个名字为   ” name “   的值

$name = mysql_real_escape_string($_POST['name'],$db);

$scores =mysql_real_escape_string($_POST['scores'],$db);

 

// 

往表单里面插入数据, scores  是表单的名字,至于跟着的两个参数是啥,就自己参透吧

// values 

把获取到的值赋值给  scores

$sql = "replace intoscores(name,scores) values('$name','$scores') "; 

 

// 

查询一下数据是不是被上传成功了,没有的话,就返回异常

$result = mysql_query($sql) or die('Queryfailed; '.mysql_error());

 

?>

 

这一段代码保存一份(不会保存的,自己去问度娘吧),然后放到

pc_webserver_v9 的根目录下面的 wwwroot 文件夹里面,如下图:


 

刚刚这些

PHP 代码我已经保存为 Test ,并放到了根目录下面,到了这一步, PHP 就算结束了

 

下面是

U3D 的代码了

using  UnityEngine;


using  System.Collections;



public class Test : MonoBehaviour


{


public string strurl = "http://localhost/Test.php";



//  用户的名字


stringplayName = "";



//  用户的得分


stringplayScores = "";



voidOnGUI()


   {


//  要插入的数据


GUI.TextField(new Rect(0, 0,100, 40), playName, 25);



GUI.TextField(new Rect(120, 0,100, 40), playScores, 25);



if (GUI.Button(new Rect(40, 100, 100, 40), "Sumbit"))


       {


intscoresValue = 0;



//  把 string  类型的 playScores  转换为  int  的  scoresValue


if(int.TryParse(playScores, outscoresValue))


           {


              StartCoroutine(UploadData(playName, scoresValue));


           }


       }


   }



IEnumeratorUploadData(string strName, int


   {


WWWFormform = new WWWForm();



"name",strName);



"scores",scoresValue);



WWWhspost = new WWW(strurl,form);



yield return



"UploadData== "


   }


}



运行 U3D



点击 Sumbit

 

这时,我们回到浏览器,刷新一下


https://www.xamrdz.com/web/2uj1944690.html

相关文章: