mysqlからデータを取得する際に問題があります。私のプログラムには2種類のselectステートメントがあります。
1つは「Select*FromabcTable;」です。 もう1つは、「Select * From abcTable WHERE attribute='abc';」です。
プログラムは最初のプログラムではうまく機能しますが、2番目のプログラムではエラーが発生します。
mysqlを呼び出す前に、クエリ構造を出力すると、phpMyAdminで機能します。phpスクリプトに移動した後、クエリのエコーアウトはまったく異なります。これがコードです
この形式でクエリを作成し、query_stringに渡します
String query = "SELECT * FROM abcTable WHERE attribute = \'" + attributeVariable + \';"
mysql関数を呼び出します(ここではquery_stringに問題はありません。つまり、"Select * From abcTable WHERE attribute ='abc';")
//Call PHP Server to execute query
public static String executeQuery(String query_string) {
String result = "";
try {
HttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost("http://10.0.2.2/getdata2.php");
ArrayList<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("query_string", query_string));
System.out.println("GO TO?????" + query_string);
System.out.println("GO TO PARAM???" + params);
httpPost.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8));
HttpResponse httpResponse = httpClient.execute(httpPost);
//view_account.setText(httpResponse.getStatusLine().toString());
HttpEntity httpEntity = httpResponse.getEntity();
InputStream inputStream = httpEntity.getContent();
BufferedReader bufReader = new BufferedReader(new InputStreamReader(inputStream, "utf-8"), 8);
StringBuilder builder = new StringBuilder();
String line = null;
while((line = bufReader.readLine()) != null) {
builder.append(line + "\n");
}
inputStream.close();
result = builder.toString();
} catch(Exception e) {
Log.e("log_tag", e.toString());
}
return result;
}
phpスクリプト($queryは"Select * From abcTable WHERE attribute = \'abc \';"になります)
<?php
/* Change database details according to your database */
$dbConnection = mysqli_connect('localhost', 'name', 'pw', 'dbname');
$query = $_POST['query_string'];
$result = mysqli_query($dbConnection, $query);
if (mysqli_num_rows($result) > 0) {
while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
$output[] = $row;
}
print(json_encode($output));
} else {
print($query);
}
?>
そしてエラーショー
01-20 05:01:48.687: I/System.out(359): <b>Warning</b>: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in <b>C:\AppServ\www\getdata2.php</b> on line <b>6</b><br />
助けてくれてありがとう!!!!