欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

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

程序员文章站 2022-03-24 20:55:34
...
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"); 这一句。

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

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