php后端与C#通信之间遇到的问题

暑假接了老师一个项目,是通过unity实现AR远程装配的维修。其实功能不算复杂,主要是通过mysql实现通信比较困难一些。因为没有系统的学习过sql语言,只是简单的用过,所以第一个部分就遇到了一个问题。
php已经实现了与数据库之间的通信。但是,没办法从数据库中捕获数据:
测试代码:test.php

<?php 
$link=mysqli_connect("127.0.0.1","root",""); 
if(!$link) echo "FAILD!连接错误,用户名密码不对"; 
else echo "OK!可以连接";
mysqli_select_db($con, "unity"); 
$result = $con->query("SELECT COUNT(*) FROM users WHERE username='admin'");`在这里插入代码片`
?> 

在调试过程中,浏览器报错为:
此处提示,是程序的第五行出了问题
最终发现错误原因有两个,首先是,因为在mysql中,命名的字段名和系统命名的字段名称不一致。造成查找的时候出了问题。
第二个原因就比较秀逗了。在写php文件的时候:

//连接数据库
<?php
$con = new mysqli("127.0.0.1", "root", ""); 
if (!$con) die('Could not connect: ' . mysqli_error($con)); 
mysqli_select_db($con, "unity"); 
$con->query("set character set 'utf8'"); // 设置字符集格式
$con->query("set character set 'utf8'"); 
if (empty($_POST['username'])) 
{     
    echo "901";
    return; 
} // 检查用户名是否存在 
$result = $con->query("SELECT COUNT(*) FROM users WHERE username='" . $_POST['username'] . "'"); 
$row = $result->fetch_row(); 
if ($row[0] == 1) 
{     
    // 用户名存在     
    $result = $con->query("SELECT is_expert + 1, nickname FROM users WHERE username='" . $_POST['username'] . "' AND PASSWORD='" . $_POST['password'] . "'");     
    $row = $result->fetch_row();     
    if ($row[0] == 2) 
    {         
        echo '{"result":2, "nickname":"' . $row[1] . '"}';  // 专家
    } 
    else if ($row[0] == 1) 
    {         
        echo '{"result":1, "nickname":"' . $row[1] . '"}';  // 普通工程师
    }
      
    else 
    {         
     echo '{"result":902, "nickname":""}';      // 密码错误     
    } 
} 
else 
{     // 用户名不存在
     echo '{"result":901, "nickname":""}'; 
 } 
 mysqli_close($con); 
 ?>

看见最上面那个注释了没有?在这里插入图片描述
把他写在了php文件外部。编译器疯狂报错,我就视而不见,还觉得自己调的挺好。。。实际上,这个写在文件体外面的字段,作为post的返回值一起返回了json。真扯淡啊。。。。
不过,虽然被这个bug卡了好几天(有点丢人哈),不过,为此我尝试了unity的各种调试方法,感觉还是很好的。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值