• 技术文章 >后端开发 >php教程

    appcan开发提示错误syntax error, unexpected ']', expecting T_STRING or T_VARIABLE or T_

    2016-06-20 12:54:53原创1130
    1server.php
    date_default_timezone_set("Asia/Shanghai");
    header("Content-Type: text/html; charset=utf-8");
    require_once("Config.php");
    ?>


    $request = $_GET['jsoncallback'];

    //sql查询语句
    $sql = "SELECT Id,Bookname,Pubdate,Author FROM td_book where tid=".$Id.";
    $query = mysql_query($sql);
    //给Json数组赋值
    while($row=mysql_fetch_array($query))
    {
    $demoData[]=array(
    'tid'=>'$row['Id']',
    'subject'=>$row['Bookname'],
    'dateline'=>$row['Pubdate'],
    'author'=>$row['Author'],
    );
    }

    //让Json支持中文UTF-8编码
    class Json{

    public static function encode($str){

    $code = json_encode($str);

    return preg_replace("#\\\u(([0-9a-f]+?){4})#ie", "iconv('UCS-2', 'UTF-8', pack('H4', '\\1'))", $code);

    }

    public static function decode($str){

    return json_decode($str);

    }

    }

    //json数据返回客户端
    echo $request.'('.json_encode($demoData).')';
    //关闭数据库
    exit;
    ?>

    2页面html



    <br />


































    3book.js

    /**
    * 客户端与服务器端数据交互示例
    *
    *
    */

    /**
    * 服务器地址
    */
    var bookHost = "http://localhost:1000/server.php?jsoncallback=?";

    /**
    * js端base64实例化
    */
    var b64 = new Base64();


    /**
    * 网络请求中转函数
    *
    * @param {Object} url 服务器请求地址
    * @param {Object} callback 回调函数
    */
    function xmlHttp(url,callback){
    if(url == ''){
    uexWindow.alert('参数错误','请求地址不能为空!','返回');
    }else{
    $.getJSON(url,callback);
    }
    }

    /**
    * 获取帖子列表
    */
    function getBookList(){
    uexWindow.toast("1","5","数据加载中…","0");

    var url = bookHost;
    xmlHttp(url,showList);
    }

    /**
    * 回调函数,用于处理服务器端返回的帖子数据,显示在客户端上
    * @param {Object} items 服务器端返回的json数据
    */
    function showList(items){
    var forumObj = $("#book_list");
    forumObj.html('');

    for(var i in items){
    var item = items[i];

    var tr = '';
    var trHeader = '
    ';
    var trTitle = '
    '+b64.decode(item.subject)+'
    ';
    var trOtherInfo = '
    '+b64.decode(item.dateline)+' '+b64.decode(item.author)+'
    ';
    var trFooter = '
    ';
    tr = trHeader+trTitle+trOtherInfo+trFooter;
    forumObj.append(tr);
    }
    uexWindow.closeToast();
    }



    提示错误
    Parse error: syntax error, unexpected ']', expecting T_STRING or T_VARIABLE or T_NUM_STRING in D:\WWW\server.php on line 17

    求解!!!
    我想显示的结果是


    回复讨论(解决方案)

    这个问题我搞了好几天,我是菜鸟,求各位指点一下

    $sql = "SELECT Id,Bookname,Pubdate,Author FROM td_book where tid=".$Id.";

    'tid'=>'$row['Id']',

    $sql = "SELECT Id,Bookname,Pubdate,Author FROM td_book where tid=".$Id.";

    'tid'=>'$row['Id']',



    大神,改哪?

    $sql = "SELECT Id,Bookname,Pubdate,Author FROM td_book where tid=".$Id.";


    $sql = "SELECT Id,Bookname,Pubdate,Author FROM td_book where tid=".$Id.";



    没改动啊,哪里有问题呢



    有人说是类型转换错误,但要怎么改动?

    第一处:
    $sql = "SELECT Id,Bookname,Pubdate,Author FROM td_book where tid=".$Id. ";
    最后是一个双引号,显然是不合语法的,因为除了在引号中,引号必须成对出现
    现在你把他的伴侣拐跑了,他就要让你哭了

    第二处:
    'tid'=> '$row['Id'] ',
    单引号中的单引号和双引号中的双引号,都必须转义,否则 php 不知道引号括起了什么
    单引号中的变量不会被取值,显然你这也不符合业务需求

    版主大人,又出现这种问题了
    Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in D:\WWW\server.php on line 16

    //sql查询语句

    $sql = "SELECT Id,Bookname,Pubdate,Author FROM td_book where tid=".$Id."";
    $query = mysql_query($sql);
    //给Json数组赋值
    while($row = mysql_fetch_array($query))
    {
    $demoData[]=array(
    "tid"=>$row['Id'],
    "subject"=>$row['Bookname'],
    "dateline"=>$row['Pubdate'],
    "author"=>$row['Author'],
    );
    }

    加了一个if(is_resource($query)){},运行为null
    什么意思,数据库里面明明有数据的

    我真的快哭了

    $query = mysql_query($sql) or die(mysql_error()) ;
    就看到哪儿不对了

    No database selected

    $mysql_server_name = "localhost";
    $mysql_username = "root";
    $mysql_password = "123456";
    DEFINE('mysql_database','tyshichang');
    $mysqldb = mysql_connect($mysql_server_name,$mysql_username,$mysql_password);
    DEFINE('conn',$mysqldb);
    mysql_query('set names utf8');
    if(!conn){
    echo ('{"Status":"not db"}');
    };
    ?>

    上面是Config.php

    server.php
    date_default_timezone_set("Asia/Shanghai");
    header("Content-Type: text/html; charset=utf-8");
    require_once("Config.php");
    ?>

    怎么会没链接呢

    No database selected 没有选择数据库
    在你的 Config.php 中并没有看到 mysq_select_db 函数的使用

    你没选择数据库,少了mysql_select_db("tyshichang"); 这一句。

    可以了,但是显示页面有乱码

    我知道为什么有乱码了,改好了,太感谢你们了

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    上一篇:如何使用Linux的Crontab执行PHP脚本 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • 一文详解PHP用流方式实现下载文件(附代码示例)• PHP反序列化入门总结(小白必看)• PHP原生类的总结分享• 聊聊PHP escapeshellarg函数使用的中文问题• 分享PHP函数使用小工具(附代码示例)
    1/1

    PHP中文网