我现在有两台服务器A,B。查出a,提交给了。b更新数据库后,返回一个状态给a.查了一下资料用 $.getJSON,但不成功。不知道B如果处理发过来的数据还有,在switch 外定义了个变量,在里面赋值报错误:行 62 - syntax error, unexpected T_VARIABLE
求教,搞了半天了。

解决方案 »

  1.   

    syntax error是指语法错误,把代码发上来看看。
      

  2.   

    if(isset($_GET['act'])&&$_GET['act']=='datasync')
    {
    if(!isset($_GET['tab'])|| empty($_GET['tab']))
    return;

    $t=$_GET['tab']; if(!isset($_GET['data'])|| empty($_GET['data']))
    return;
    $data=rawurldecode($_GET['data']);
    $arr=explode(';',$data);
    $count=count($arr)-1;

    $jsondata = "{status:'ok'}";//返回数据
    switch($t)

    case 'tbl_local':
    for($i=0;$i<$count;$i++)
    {
    $sql="insert into tbl_local(name,lft,rgt,depr) values($arr[$i])";
    $bool=mysql_query($sql,$dbi); 
    if(!$bool){
    global $jsondata;
    $jsondata ="sdfsd";
    break;


    }
    break;
    case 'tbl_manager': 
    for($i=0;$i<$count;$i++)
    {

    $sql="insert into tbl_manager(name,password,enable) values($arr[$i])";
    $bool=mysql_query($sql,$dbi);
    if(!$bool){
    $jsondata = "{status:'fail'}";
    break;

    }
    break;
    case 'tbl_terminal': 
    for($i=0;$i<$count;$i++)
    {

    $sql="insert into tbl_terminal(ident,num,tag,local,cat,last_connect,last_update,last_update_id,ip) values($arr[$i])";
    $bool=mysql_query($sql,$dbi); 
    if(!$bool){
    $jsondata = "{status:'fail'}";
    break;

    }
    break;
    case 'tbl_terminal_cat': 
    for($i=0;$i<$count;$i++)
    {

    $sql="insert into tbl_terminal_cat(cat,depr) values($arr[$i])";
    $bool=mysql_query($sql,$dbi);
    if(!$bool){
    $jsondata = "{status:'fail'}";
    break;

    }
    break;
    case 'tbl_terminal_logger': 
    for($i=0;$i<$count;$i++)
    {

    $sql="insert into tbl_terminal_logger(cat,terminal,data,datax,log_time) values($arr[$i])";
    $bool=mysql_query($sql,$dbi); 
    if(!$bool){
    $jsondata = "{status:'fail'}";
    break;

    }
    break;
    case 'tbl_update': 
    $sql="select id,path from tbl_update where id>".$data;
    $rs=mysql_query($sql,$dbi); 
    $str="";
    while($row=mysql_fetch_row($rs))
    {   
    $str.=$row[0].",".$row[1].";";
    }
    print $str;return;
    break;
    }
    $jsondata = "{status:'ok'}";
    print $jsondata;return;
    //echo $_GET['callback'].'('.$jsondata.')';
    }
      

  3.   

    形如 $sql="insert into tbl_local(name,lft,rgt,depr) values($arr[$i])";
    这样的语句都将报错,$arr[$i] 要用花括号括起 {$arr[$i]}
    另外这条 sql 指令是错误的,目标字段表中有4个字段,值列表中只有一个值
      

  4.   

    谢谢,问题解决了。$arr[$i]是已经拼接好的数据。哎,有花了我一百分啊。每次提问到头来都自己给解决了。
      

  5.   


    楼主能发一下你的$.getJSON的请求格式吗,有没有加错误提示??PHP端返回的数据有没有处理过呢?
      

  6.   

      +++ 
      换成我,等1个月我也等!哪怕不能直接解决问题,至少能获得些新的思路!
      楼主才几个小时就等不了,哎,我还说要帮你看看$.getJSON请求格式是不是错了。结果连这个机会都不给!