最近有项目需要用到数据库,网上有不少资料,但是整理后发现,那些资料对于完全没有
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
这时,我们回到浏览器,刷新一下