- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有人可以帮我解决这个错误吗?因为,代码的结果是 json 格式的成功。但仍然有错误“ undefined variable :query_params”。
我想用这种 json 格式在我的 android 程序中制作 ListView 。在我的 android 中,它无法从我的 comments.php 中显示成功的 json 格式。我想,也许是因为这个错误“ undefined variable :query_params”。
这是我的comments.php
<?php
require("config.inc.php");
//initial query
$query = "Select * FROM comments";
//execute query
try {
$stmt = $db->prepare($query);
$result = $stmt->execute($query_params);
}
catch (PDOException $ex) {
$response["success"] = 0;
$response["message"] = "Database Error!";
die(json_encode($response));
}
$rows = $stmt->fetchAll();
if ($rows) {
$response["success"] = 1;
$response["message"] = "Post Available!";
$response["posts"] = array();
foreach ($rows as $row) {
$post = array();
$post["post_id"] = $row["post_id"];
$post["username"] = $row["username"];
$post["title"] = $row["title"];
$post["message"] = $row["message"];
//update our repsonse JSON data
array_push($response["posts"], $post);
}
// echoing JSON response
echo json_encode($response);
} else {
$response["success"] = 0;
$response["message"] = "No Post Available!";
die(json_encode($response));
}
?>
这是我的 android 代码,用于从 comments.php 读取 json 格式以制作 ListView 。 ListView 没有任何显示。
ReadComments.java
import java.util.ArrayList;
import java.util.HashMap;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.app.ListActivity;
import android.app.ProgressDialog;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.SimpleAdapter;
public class ReadComments extends ListActivity {
private ProgressDialog pDialog;
private static final String READ_COMMENTS_URL = "http://192.168.56.101/webservice/comments.php";
private static final String TAG_SUCCESS = "success";
private static final String TAG_TITLE = "title";
private static final String TAG_POSTS = "posts";
private static final String TAG_POST_ID = "post_id";
private static final String TAG_USERNAME = "username";
private static final String TAG_MESSAGE = "message";
private JSONArray mComments = null;
private ArrayList<HashMap<String, String>> mCommentList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// note that use read_comments.xml instead of our single_post.xml
setContentView(R.layout.read_comments);
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
// loading the comments via AsyncTask
new LoadComments().execute();
}
public void addComment(View v) {
Intent i = new Intent(ReadComments.this, AddComment.class);
startActivity(i);
}
public void updateJSONdata() {
mCommentList = new ArrayList<HashMap<String, String>>();
JSONParser jParser = new JSONParser();
JSONObject json = jParser.getJSONFromUrl(READ_COMMENTS_URL);
try {
mComments = json.getJSONArray(TAG_POSTS);
for (int i = 0; i < mComments.length(); i++) {
JSONObject c = mComments.getJSONObject(i);
String title = c.getString(TAG_TITLE);
String content = c.getString(TAG_MESSAGE);
String username = c.getString(TAG_USERNAME);
HashMap<String, String> map = new HashMap<String, String>();
map.put(TAG_TITLE, title);
map.put(TAG_MESSAGE, content);
map.put(TAG_USERNAME, username);
mCommentList.add(map);
}
} catch (JSONException e) {
e.printStackTrace();
}
}
private void updateList() {
ListAdapter adapter = new SimpleAdapter(this, mCommentList,
R.layout.single_post, new String[] { TAG_TITLE, TAG_MESSAGE,
TAG_USERNAME }, new int[] { R.id.title, R.id.message,
R.id.username });
setListAdapter(adapter);
ListView lv = getListView();
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
}
});
}
public class LoadComments extends AsyncTask<Void, Void, Boolean> {
@Override
protected void onPreExecute() {
super.onPreExecute();
pDialog = new ProgressDialog(ReadComments.this);
pDialog.setMessage("Loading Comments...");
pDialog.setIndeterminate(false);
pDialog.setCancelable(true);
pDialog.show();
}
@Override
protected Boolean doInBackground(Void... arg0) {
updateJSONdata();
return null;
}
@Override
protected void onPostExecute(Boolean result) {
super.onPostExecute(result);
pDialog.dismiss();
updateList();
}
}
}
最佳答案
您看到“ undefined variable ”错误是因为您试图在定义变量应包含的内容之前在 execute()
语句中使用变量 $query_params
。参见 this answer .
您发送到 execute()
语句的 $query_params
也不需要,看看您是如何在 $query 中不使用任何参数的
。参见 this PHP manual on PDO Statement .
因此,要修复您的错误,只需更改此:
$result = $stmt->execute($query_params);
对此:
$result = $stmt->execute();
关于php - undefined variable : query_params,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21691901/
有人可以帮我解决这个错误吗?因为,代码的结果是 json 格式的成功。但仍然有错误“ undefined variable :query_params”。 我想用这种 json 格式在我的 andro
我只想在给定 query_params 时返回 model_info,否则它应该给出一些错误消息。 我尝试了下面的代码,但是当名称未在查询参数中传递时,它给我 keyerror 。 from rest
我尝试根据 query_params 在 View 集上使用不同的分页类集。 class BlockViewSet(viewsets.ModelViewSet): pagination_cla
我在学习DRF ,并尝试打印 print request.query_params。但是出现错误: print request.query_params AttributeError: 'WS
我正在构建一个简单的 API,并尝试测试 POST 请求。 Post 请求应仅基于一个参数创建一条新记录:标题。 我正在使用manage.py test进行测试,并且我已经设置了客户端: client
我正在使用 DRF 构建一个 RPC 样式的 API,其中每个端点都可以使用 GET 或 POST 方法调用。到目前为止,我已经很好地结合了这些方法: class UpdateUser(APIView
在我的观点之一中,我将附加数据作为 APIView 删除方法中的查询参数传递。我可以使用 request.query_params 获取相同的信息在 View 中。但是当我尝试使用 DRF APIRe
我们使用序列化器来验证进入我们的非基于模型的服务方法的数据。这当然适用于作为 JSON 的 POST,但如果 query_params 中的内容不复杂(不是列表或嵌套),通常也适用于 GET。但是,如
我是一名优秀的程序员,十分优秀!