PHP开发异常

来源:互联网 发布:潭州教育java 编辑:程序博客网 时间:2024/06/06 08:56

2016/11/9:


1)jquery中通过ajax调用json数据失败,无法打开php文件返回的json数据问题

一般来说["请求ajax失败或者不执行的原因"](http://jingyan.baidu.com/article/066074d66e1a41c3c21cb0c9.html)这几个问题中的我出现的应该是php返回的数据有问题,简单来讲就是php文件中就是php代码不要写上标签这种东西,尤其是要使用json数据的时候.

这是出问题的php代码(我现在学习的是通过php连接数据库并通过数据查看工具echars进行前端的输出,实例中用到了jquery和echars):

不要担心最后我会给出源代码的哦

文件名:get_data.php

<body><?php            require('../laze/db_link.php');         //连接数据库            $result = mysqli_query($con, "SELECT _name,_death FROM loldatas");   //选择数据源            $data="";      //声明要返回的数据            $array= array();//声明要返回的数据的存放位置            //声明一个类            class User{                public $name;                public $death;            }            //进行数据的遍历赋值            while($row = mysqli_fetch_array($result,MYSQL_ASSOC)){                $user=new User();                $user->name=$row["_name"];                $user->death=$row["_death"];                $array[]=$user;            }            $data=json_encode($array);            echo $data;?></body>

其中可以看到多了个<body>标签,我都不知道为什么当初是如此的智障,为啥要多写一个标签.

然后用echars_mysql_test.html文件调用,文件内容如下

<!DOCTYPE html><head>    <meta charset="utf-8">    <title>ECharts</title>    <script src="js/echarts.min.js"></script>    <script src="js/jquery.js"></script></head><body>    <!-- 为ECharts准备一个具备大小(宽高)的Dom -->    <div id="main" style="height:400px"></div>   <script type="text/javascript">              var  myChart = echarts.init(document.getElementById('main'));              var arr1=[],arr2=[];              function arrTest(){                $.ajax({                  type:"post",                  async:false,                  url:"get_data.php",                  data:{},                  dataType:"json",                  success:function(result){                    if (result) {                      for (var i = 0; i < result.length; i++) {                          arr1.push(result[i].name);                          arr2.push(result[i].death);                      }                    }                  },                  error : function(errorMsg) {                                        alert("sorry,请求数据失败");                                        myChart.hideLoading();                                    }                })                return arr1,arr2;              }              arrTest();              var  option = {                    tooltip: {                        show: true                    },                    legend: {                       data:['death']                    },                    xAxis : [                        {                            type : 'category',                            data : arr1                        }                    ],                    yAxis : [                        {                            type : 'value'                        }                    ],                    series : [                        {                            "name":"death",                            "type":"bar",                            "data":arr2                        }                    ]                };                // 为echarts对象加载数据                myChart.setOption(option);            // }    </script></body>

出错页面:
这里写图片描述

然后 可以在谷歌控制台(F12),在报错出下个断点,调试然后可以清楚的看到我们的异常.

红框中是需要注意的位置

responseText是回调的数据,里面应该是单纯的数据然而里面却又个<body>标签所以断定是php文件出了问题.所以删掉php文件中的标签问题完美解决

这里写图片描述

这里是源代码:echars测试

2016/11/8:


1)php 的require(‘filename’);函数请求失败显示”failed to open stream: No such file or directory in Unknown on line 0”

答:可能是运行的php文件中包含了中文,所以说以后开发都用英文吧,可以省好多事的

2)数据库连接函数最好写四个变量,就像这样的:con=mysqliconnect(mysql_server_name,mysqlusername,mysql_password,$mysql_database);

2016/11/7 :


1)打开php页面时明明添加了

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

但是还是出现乱码问题 .
答:考虑你的php文档的编写编码是不是用utf-8(有时用notepa++编写时一不小心就默认为用ANSI格式编码),所以用notepad++打开问题PHP文档->格式->转为UTF-8编码即可.

2)用以下代码查询

$result = mysqli_query($con,"SELECT * FROM loldatas ORDER BY kill");

出现查询不出结果的问题
答:”KILL”是数据库的关键字,不能用作变量名,要注意变量命名的规范()

0 0
原创粉丝点击