I am new to using PHP and Java. I am making a Android app and I got an SQL syntax error...
The Error:
returned to Java:
check the manual that corresponds to your MySQL server
version for the right syntax to use near '#mail.com' at line 1. Any idea how I have to fix that.
I think that a problem of php script. How can I fix this. Any help is greatly appreciated
// Login by email and password if access success setId()
// Saved Email as static string "staticEmail" and used to get CustomerID from customer table
// Get & set CustomerID to "string qr_id" if email=".$email
/* error:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server
version for the right syntax to use near '#mail.com' at line 1
*/
<?php
//connect to MySQL database
mysql_connect("localhost","name","pass") or die(mysql_error());
mysql_select_db("tls_db");
$output = array();
if (isset($_GET['email'])){
$email = $_GET['email'];
$sql = mysql_query("select CustomerID from customer where email=".$email) or die(mysql_error());
while($row=mysql_fetch_assoc($sql)){
$output[] = $row;
}
mysql_close();
print(json_encode($output));
}
?>
Java:
private void setId() {
InputStream is = null;
ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
try {
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(
"http://"+URL+"/tls_db/log.php?email=" + staticEmail); //Post email 123#mail.com
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
is = entity.getContent();
} catch (Exception e) {
Log.e("log_tag", "Error in http connection" + e.toString());
}
// Convert response to string
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(
is, "iso-8859-1"), 8);
sb = new StringBuilder();
sb.append(reader.readLine() + "\n");
String line = "";
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
result = sb.toString();
is.close();
} catch (Exception e) {
Log.e("log_tag", "Error converting result " + e.toString());
}
try {
JSONArray jArray = new JSONArray(result);
for (int i = 0; i < jArray.length(); i++) {
JSONObject json_data = jArray.getJSONObject(i);
// Get CustomerId and set to (static string qr_id)
qr_id = json_data.getString("CustomerID");
}
} catch (JSONException e1) {
//iv.setVisibility(View.GONE);
Toast.makeText(getBaseContext(), "Server Data Error",
Toast.LENGTH_LONG).show();
} catch (ParseException e1) {
e1.printStackTrace();
}
// Open class QRcode
Intent iSuccess = new Intent(Login.this, QRcode.class);
startActivity(iSuccess);
}
You need to quote your $email in SQL query:
$sql = mysql_query("select CustomerID from customer where email='".$email."'") or die(mysql_error());
Btw, your code is vulnerable to SQL Injections. Make sure to read how to protect from this vector of attack.
Related
I'm working on creating an android app that will pull down user data from a MySQL database stored on a web server. I've read a few tutorials on HTTP Post that allows me to connect to the database, which I got working. However, I am unable to process the data that gets sent from the php.
The error I receive is: org.apache.http.MalformedChunkCodingException: Chunked stream ended unexpectedly.
This is the code I have written:
String name = username.getText().toString(); //username is a TextView field
ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(1);
nameValuePairs.add(new BasicNameValuePair("user",name));
try
{
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(location);
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
is = entity.getContent();
}
catch(Exception e)
{
Toast.makeText(getBaseContext(), e.toString(), Toast.LENGTH_LONG).show();
Log.e("log_tag", "Error in http connection"+e.toString());
}
//Convert response to string
try
{
BufferedReader reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));
sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null)
{
sb.append(line + "\n");
}
is.close();
result = sb.toString();
Log.i("log_tag", result);
}
catch(Exception e)
{
Toast.makeText(getBaseContext(),e.toString() ,Toast.LENGTH_LONG).show();
Log.e("log_tag", e.toString());
}
The error seems to appear in the convert response to string section. I've looked up several issues regarding similar errors to the one I received but what I read didn't seem to help much or I just don't know enough about http client coding...probably the latter. Any help would be greatly appreciated, thanks!
Here is the PHP as well:
<?php
$con = mysqli_connect("/**connection*/");
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: ".mysqli_connect_error();
}
$result = mysqli_query($con, "SELECT * FROM userNames WHERE user='".$_POST['name']."')";
if ($result == NULL)
{
die();
}
else
{
//TODO:get row to java
$rows = array();
while($r = mysql_fetch_assoc($result))
{
$rows[] = $r;
}
print json_encode($rows);
mysql_close();
}
mysqli_close($con);
}
?>
The end goal of this is to convert the JSON response from the database into separate variables, the buffered reader stuff is just a middle step before the JSON conversion. Again , I just followed a tutorial so if anyone knows a different way of going about this I'm open to suggestions.
I have a MySQL database with one unique table: geopoints, that has 3 columns: id, lat and long, and this table is filled up with 4 entrys already, 4 values of lat and long (1E6 because its to use on a mapview).
My objective is to mark on a mapview all these 4 geopoints dynamicly using a php script that generates json array, and with a httpPost etc...
This is the code I have so far:
getjson = (Button) findViewById(R.id.button1);
getjson.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
JSONArray jArray;
String result = null;
InputStream is = null;
StringBuilder sb = null;
ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();//Whats this for?
try {
HttpClient httpclient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(
"http://????????.com/????/getGeopoints.php");
HttpResponse response = httpclient.execute(httpPost);
httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpEntity entity = response.getEntity();
is = entity.getContent();
} catch (Exception e) {
Log.e("log_tag", "Error connecting to http " + e.toString());
}
try {
BufferedReader reader = new BufferedReader(
new InputStreamReader(is, "iso-8859-1"), 8);
sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
is.close();
result = sb.toString();
} catch (Exception e) {
Log.e("log_tag", "Error converting " + e.toString());
}
try {
jArray = new JSONArray(result);
for (int i = 0; i <= jArray.length(); i++) {
JSONObject json_data = jArray.getJSONObject(i);
Log.i("log_tag", "id: " + json_data.getInt("id")
+ ", latitude: " + json_data.getInt("lat")
+ ", longitude: " + json_data.getInt("long"));
}
} catch (JSONException e) {
Log.e("log_tag", "Error parsing data " + e.toString());
}
}
});
This is the php file:
<?php
mysql_connect("?????.com", "username", "password");
mysql_select_db("database_name");
$q = mysql_query("SELECT * FROM geopoints");
while ($e = mysql_fetch_assoc($q))
$output[] = $e;
print(json_encode($output));
mysql_close();
?>
I have this file running right because as I enter the url on a browser it generates the exact json array with the exact information I want.
There is only think I don't understand, what's HttpEntity for? Because I followed up a tutorial, and in there it uses an array with information to filter from the db, as I don't want to filter any info (I want all the database table entrys, not just one or two) I just leaved it blank.
What's wrong with my code?
The error I get in logcat is all the catch messages "11-29 12:47:29.662: E/log_tag(898): Error connecting to http Http android.os.NetworkOnMainThreadException".
android.os.NetworkOnMainThreadException
android >= 3.0 does not allow Network request on main UI thread. you need to use AsyncTask to call network request.
That's because you're are blocking the main UI thread. Try to use AsyncTasks for Http requests.
I'm using a MySQL database and php for my java/android app.
I haven't got any experience with php.
this is my php file (getAllDataFromSomeTable.php)
<?php
mysql_connect("someHosturl","someUsername","somePassword");
mysql_select_db("databasename");
$q=mysql_query("SELECT * FROM sometable");
while($e=mysql_fetch_assoc($q))
$output[]= $e;
print(json_encode($output));
mysql_close();
?>
and i work with HttpPosts and stuff like that in Java.
This way i can get all the data from 'sometable'
but if i want to use a different query like "select top 1 from sometable where username = 'thisuser'" for example. How can i change that dynamically in java?
How should my php file look and how should the code in java look?
this is the code i have now:
String result = "";
List<? extends NameValuePair> licenses = (List<? extends NameValuePair>) new ArrayList<DriversLicense>();
InputStream is = null;
try{
HttpClient httpclient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost("http://some-url.com/getAllDataFromSomeTable.php");
httpPost.setEntity(new UrlEncodedFormEntity(licenses));
HttpResponse response = httpclient.execute(httpPost);
HttpEntity entity = response.getEntity();
is = entity.getContent();
}catch(Exception e){
Log.d("httpclient tag", e.getMessage());
}
try{
BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8);
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
is.close();
result=sb.toString();
Log.d("result is", result);
}catch(Exception e){
Log.d("log-tag", "Error converting result "+e.toString());
}
try{
JSONArray jArray = new JSONArray(result);
for(int i=0;i<jArray.length();i++){
JSONObject json_data = jArray.getJSONObject(i);
Log.d("from jsonObject", "id= " + json_data.getInt("Id") + ", number = "
+json_data.getString("Number"));
}
}catch(JSONException e){
Log.e("log_tag", "Error parsing data "+e.toString());
}
Why don't you try adding parametes to the request?
For example:
http://some-url.com/getAllDataFromSomeTable.php?table=difftable&whereField.1=username&whereValue.1=xyz&whereField.2=surname&whereValue.2=Smith
This way you would need to parse these parameters and build a query based on the passed data.
I'm thinking that the above request would make this query:
select * from difftable where username = 'xyz' and surname ='Smith'
On the other hand, this is what webservices are for, so i would think about something like that, if possible.
I have a problem with my first Android App. I want to ask a PHP server for a name and image, using an cardid. This works well, but JSONArray throws an exception when I try to split up the long string I get. This is the method I use on the Android device:
public static Object[] getIdCardOwner(String card)
{
JSONArray jArray;
String result = null;
InputStream is = null;
StringBuilder sb=null;
ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("cardid",card));
Object returnValue[] = new Object[2];
try{
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(SERVER_URL);
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
is = entity.getContent();
}catch(Exception e){
Log.e("log_tag", "Error in http connection"+e.toString());
}
//convert response to string
try{
BufferedReader reader = new BufferedReader(new InputStreamReader(is,"utf-8"), 16);
sb = new StringBuilder();
sb.append(reader.readLine() + "\n");
String line="0";
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
is.close();
result=sb.toString();
}catch(Exception e){
Log.e("log_tag", "Error converting result "+e.toString());
}
//paring data
try{
jArray = new JSONArray(result);
JSONObject json_data=null;
for(int i=0;i<jArray.length();i++){
json_data = jArray.getJSONObject(i);
returnValue[0] = json_data.getString("name");
returnValue[1] = json_data.getString("image");
}
}
catch(JSONException e1){
Log.e("log_tag", "Error converting result "+e1.toString());
} catch (ParseException e1) {
e1.printStackTrace();
}
return returnValue;
}
This is the String result I get before the exception happens:
{"0":"4016612622","card":"4016612622","1":"Peter Poulsen","name":"Peter Poulsen","2":"\/9j\/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP\/sABFEdWNreQABAAQAAAAeAAD\/4QMpaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI\/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjAtYzA2MCA2MS4xMzQ3NzcsIDIwMTAvMDIvMTItMTc6MzI6MDAgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzUgV2luZG93cyIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpGQ0E3OUQyRDlDQkYxMUUxODMyQThCQTQ0RjhFMDFBRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpGQ0E3OUQyRTlDQkYxMUUxODMyQThCQTQ0RjhFMDFBRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkZDQTc5RDJCOUNCRjExRTE4MzJBOEJBNDRGOEUwMUFGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkZDQTc5RDJDOUNCRjExRTE4MzJBOEJBNDRGOEUwMUFGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+\/+4ADkFkb2JlAGTAAAAAAf\/bAIQAEAsLCwwLEAwMEBcPDQ8XGxQQEBQbHxcXFxcXHx4XGhoaGhceHiMlJyUjHi8vMzMvL0BAQEBAQEBAQEBAQEBAQAERDw8RExEVEhIVFBEUERQaFBYWFBomGhocGhomMCMeHh4eIzArLicnJy4rNTUwMDU1QEA\/QEBAQEBAQEBAQEBA\/8AAEQgAlgBkAwEiAAIRAQMRAf\/EAHwAAAIDAQEAAAAAAAAAAAAAAAADAgQFAQYBAAMBAQAAAAAAAAAAAAAAAAABAgMEEAABBAEDAwMCBQQDAAAAAAABABECAyExEgRBUSJhEwVxMoGRobEV0UJScjMUJBEAAgICAgMBAQAAAAAAAAAAAAERAiExUQNBEhNxIv\/aAAwDAQACEQMRAD8Are5PONNV02zAf0f80obuwyie4QOBouY6R2+z9WOnVG+xz5DAfUJUpbA85RiPVZ9\/zEIPGsbj3ZgmlOgcI1hKZI8hn1XPckI7jL8HWBL5flzDBo+oSv5DlGJiZu6fqyfZHoeQXhIO4D\/sq1Q8R9Fmcb5Ocd0LySJdexZlpceyFkAYl8IiBzI5kMususkBFkMpMuMgDjIXUIAo\/H86cyKrsy6S\/qrXL5EKaiZddFU4nx9ldgstkABnaMlR5ELudyvYjiNZyegTcSCmCjfybeVY8n9IjQIHEIHk69Hw\/jePTEARc9ZHUq2eDQS5iCl78Gi6eTyUeFyLMVwO1T\/jOXEOYEhevjTCIaIAC4ax2S+jK+KPFWVSjicTEjuuVX28ee+st6L1vI4lNoInEFYXP+KlU86vKHbqFVbp4Znbqayi1xOfVyIf4zH3RVj3Y9l5gTnVMSjghb1N0rqo2Bsj1TaghOSx7o7LnvYcR7fqlefouREtoyPyUjHe6f8AH0QlbT3H5IQB3kcmMKt0fInAHqVZ4FArg8vvnmZ9Vm1Vmd1cZaDyP4LYqwym3Bt1ryXI7QEwMyRBymgsFBskSdkDaoguukeiQ4FzAVW2DgqzPslTGE5E0ea+T4grPuwHjL7gOhUPirjGw0k4kHi\/cLa5NUZwlAjBC88AaOVEtiMltVyoOXsrFkzcXI\/aFIaKMftCkQeiF1CAOxA9\/A0AV2vRUazOVshHXQlTnPlVhxFx6JNZNqOEacJsR2TwayH6rGr50jibBWqr9+I5UtGqcmgJ1R6uuGyJPZUZ2yhmWFSt5Mplokv6JQNuDWnZEpM7IOzqjx6pyL2W7R2fKtTjREARk57oZMyJvLOO4WHy4R9wyGvVa18mPiXHVZPP+8SHUZV02Y9ujR45MqYE9lKP2D6KPH\/4If6hSj9o+iZB3CEIQAm680TJGkmSp\/I3jEQRE9Yh\/wBFYNPvHoW6FSjC+J8YxHqjHBolZrDgpyjypxE5jEvTP6LR+MhZVb5l3Gi7GuZ87ZO3QYTqo6zf6JWcmtKOchzSbJ7AWB6qjyODdXF4Fye2D+qvHJ3apkR7lewgSCiYKdZwY44fI2CVZHuuXiTj8Zarho5sIvIuR26fitQ8OkHSUT6FSjwqwX8pf7F03cj5OZyU6K7DAmwGRIWbz4nDheisiIxYYWLzoGdkYjV0Utknsp\/I3jgezAHURD\/VTIgwYdB+2UuuHtREX9fzUoywFZk1Djg6wQh8oQIdRgP3T2AVamwM3ZMncwRB1UhJfgXXRDAnCs02UGDF86ELJ5UDMMfuOfoqsZciobdxICPXAO8PRtSnUJECTqPuiEgYyySsaNVnJJeUm7OrfG4c6pBy4GWSdQV23o2YW7i0spwlEDH5LO8onfDUajoUwXghwoaNFaR10u+Fk2l+VBu6uW3rPNn\/AKBM9E6oz7Gsfo60jcyhE+IXJ2b5mQwCoxPiFa0c1nNnAx0KLoQI4ZGM8aHKeAS0joq8t2pZgrXHMZw2lNmtHiBdvIppPn0UYc3juHq3btHGrpvL4lV9bSi\/ZdonITqxFqRtiCEeC17eIZwc3j1uK6c6kNkLn8nQSN0ZDrp0Wh7pG6W2smQYqnYDcW2xZtrAYZIr+uEiMOdXadtJEz27KcYyMt2gIyPVN4vEpoidkREy1ICldIRgT1Kh7wLK2U7BkqlZieFbnJoklUTLdMlVVGfY8DBL0UoywlBTicKjEZu+qFF0IAmo1XGmzadDp9EOoWx3RxqMhVA04NOMvciWS27jI0SOByBgS10KvTEd2OqmDerlCYCcjonASPizBMrgAexTPGI3dkmV+sVOWyDKpffuLdl3k3OS5wMhULLskpKpFrByLX6qvHAD66oc2S9FOUC4bQaqtGdpZ0FSicJbEKUThMiGtjHQoOhIQ1+6hKYbGUbUbU5N11c5IRJrPuDT+7+qv1coSiM5VOsBzE9UqyudR3Vlh2TE5q8Gr\/2TE6u6VdzW1KzPft6lLJlI+RdECd2yxZyDMnslSJkWXACdFYppc6IJSbO01EJhiz\/RWBXtiyRYWwOqhs0qtIUYuubU0DCGUyauqe0KYoTNvVCfszP41BBbCEJmpCWuNU3WPmGQhNGdytMVPgqIFb6oQqMx0BU+T+6uUivoUISY0StMm8Q\/qqmTLywhClmtSeFxCFJYIQhIR\/\/Z","image":"\/9j\/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP\/sABFEdWNreQABAAQAAAAeAAD\/4QMpaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI\/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjAtYzA2MCA2MS4xMzQ3NzcsIDIwMTAvMDIvMTItMTc6MzI6MDAgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzUgV2luZG93cyIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpGQ0E3OUQyRDlDQkYxMUUxODMyQThCQTQ0RjhFMDFBRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpGQ0E3OUQyRTlDQkYxMUUxODMyQThCQTQ0RjhFMDFBRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkZDQTc5RDJCOUNCRjExRTE4MzJBOEJBNDRGOEUwMUFGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkZDQTc5RDJDOUNCRjExRTE4MzJBOEJBNDRGOEUwMUFGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+\/+4ADkFkb2JlAGTAAAAAAf\/bAIQAEAsLCwwLEAwMEBcPDQ8XGxQQEBQbHxcXFxcXHx4XGhoaGhceHiMlJyUjHi8vMzMvL0BAQEBAQEBAQEBAQEBAQAERDw8RExEVEhIVFBEUERQaFBYWFBomGhocGhomMCMeHh4eIzArLicnJy4rNTUwMDU1QEA\/QEBAQEBAQEBAQEBA\/8AAEQgAlgBkAwEiAAIRAQMRAf\/EAHwAAAIDAQEAAAAAAAAAAAAAAAADAgQFAQYBAAMBAQAAAAAAAAAAAAAAAAABAgMEEAABBAEDAwMCBQQDAAAAAAABABECAyExEgRBUSJhEwVxMoGRobEV0UJScjMUJBEAAgICAgMBAQAAAAAAAAAAAAERAiExUQNBEhNxIv\/aAAwDAQACEQMRAD8Are5PONNV02zAf0f80obuwyie4QOBouY6R2+z9WOnVG+xz5DAfUJUpbA85RiPVZ9\/zEIPGsbj3ZgmlOgcI1hKZI8hn1XPckI7jL8HWBL5flzDBo+oSv5DlGJiZu6fqyfZHoeQXhIO4D\/sq1Q8R9Fmcb5Ocd0LySJdexZlpceyFkAYl8IiBzI5kMususkBFkMpMuMgDjIXUIAo\/H86cyKrsy6S\/qrXL5EKaiZddFU4nx9ldgstkABnaMlR5ELudyvYjiNZyegTcSCmCjfybeVY8n9IjQIHEIHk69Hw\/jePTEARc9ZHUq2eDQS5iCl78Gi6eTyUeFyLMVwO1T\/jOXEOYEhevjTCIaIAC4ax2S+jK+KPFWVSjicTEjuuVX28ee+st6L1vI4lNoInEFYXP+KlU86vKHbqFVbp4Znbqayi1xOfVyIf4zH3RVj3Y9l5gTnVMSjghb1N0rqo2Bsj1TaghOSx7o7LnvYcR7fqlefouREtoyPyUjHe6f8AH0QlbT3H5IQB3kcmMKt0fInAHqVZ4FArg8vvnmZ9Vm1Vmd1cZaDyP4LYqwym3Bt1ryXI7QEwMyRBymgsFBskSdkDaoguukeiQ4FzAVW2DgqzPslTGE5E0ea+T4grPuwHjL7gOhUPirjGw0k4kHi\/cLa5NUZwlAjBC88AaOVEtiMltVyoOXsrFkzcXI\/aFIaKMftCkQeiF1CAOxA9\/A0AV2vRUazOVshHXQlTnPlVhxFx6JNZNqOEacJsR2TwayH6rGr50jibBWqr9+I5UtGqcmgJ1R6uuGyJPZUZ2yhmWFSt5Mplokv6JQNuDWnZEpM7IOzqjx6pyL2W7R2fKtTjREARk57oZMyJvLOO4WHy4R9wyGvVa18mPiXHVZPP+8SHUZV02Y9ujR45MqYE9lKP2D6KPH\/4If6hSj9o+iZB3CEIQAm680TJGkmSp\/I3jEQRE9Yh\/wBFYNPvHoW6FSjC+J8YxHqjHBolZrDgpyjypxE5jEvTP6LR+MhZVb5l3Gi7GuZ87ZO3QYTqo6zf6JWcmtKOchzSbJ7AWB6qjyODdXF4Fye2D+qvHJ3apkR7lewgSCiYKdZwY44fI2CVZHuuXiTj8Zarho5sIvIuR26fitQ8OkHSUT6FSjwqwX8pf7F03cj5OZyU6K7DAmwGRIWbz4nDheisiIxYYWLzoGdkYjV0Utknsp\/I3jgezAHURD\/VTIgwYdB+2UuuHtREX9fzUoywFZk1Djg6wQh8oQIdRgP3T2AVamwM3ZMncwRB1UhJfgXXRDAnCs02UGDF86ELJ5UDMMfuOfoqsZciobdxICPXAO8PRtSnUJECTqPuiEgYyySsaNVnJJeUm7OrfG4c6pBy4GWSdQV23o2YW7i0spwlEDH5LO8onfDUajoUwXghwoaNFaR10u+Fk2l+VBu6uW3rPNn\/AKBM9E6oz7Gsfo60jcyhE+IXJ2b5mQwCoxPiFa0c1nNnAx0KLoQI4ZGM8aHKeAS0joq8t2pZgrXHMZw2lNmtHiBdvIppPn0UYc3juHq3btHGrpvL4lV9bSi\/ZdonITqxFqRtiCEeC17eIZwc3j1uK6c6kNkLn8nQSN0ZDrp0Wh7pG6W2smQYqnYDcW2xZtrAYZIr+uEiMOdXadtJEz27KcYyMt2gIyPVN4vEpoidkREy1ICldIRgT1Kh7wLK2U7BkqlZieFbnJoklUTLdMlVVGfY8DBL0UoywlBTicKjEZu+qFF0IAmo1XGmzadDp9EOoWx3RxqMhVA04NOMvciWS27jI0SOByBgS10KvTEd2OqmDerlCYCcjonASPizBMrgAexTPGI3dkmV+sVOWyDKpffuLdl3k3OS5wMhULLskpKpFrByLX6qvHAD66oc2S9FOUC4bQaqtGdpZ0FSicJbEKUThMiGtjHQoOhIQ1+6hKYbGUbUbU5N11c5IRJrPuDT+7+qv1coSiM5VOsBzE9UqyudR3Vlh2TE5q8Gr\/2TE6u6VdzW1KzPft6lLJlI+RdECd2yxZyDMnslSJkWXACdFYppc6IJSbO01EJhiz\/RWBXtiyRYWwOqhs0qtIUYuubU0DCGUyauqe0KYoTNvVCfszP41BBbCEJmpCWuNU3WPmGQhNGdytMVPgqIFb6oQqMx0BU+T+6uUivoUISY0StMm8Q\/qqmTLywhClmtSeFxCFJYIQhIR\/\/Z"}
And this is the error I get:
05-14 14:13:00.723: E/log_tag(359): Error converting result org.json.JSONException: Value {"image":"\/9j\/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP\/sABFEdWNreQABAAQAAAAeAAD\/4QMpaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI\/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjAtYzA2MCA2MS4xMzQ3NzcsIDIwMTAvMDIvMTItMTc6MzI6MDAgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzUgV2luZG93cyIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpGQ0E3OUQyRDlDQkYxMUUxODMyQThCQTQ0RjhFMDFBRiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpGQ0E3OUQyRTlDQkYxMUUxODMyQThCQTQ0RjhFMDFBRiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkZDQTc5RDJCOUNCRjExRTE4MzJBOEJBNDRGOEUwMUFGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkZDQTc5RDJDOUNCRjExRTE4MzJBOEJBNDRGOEUwMUFGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+\/+4ADkFkb2JlAGTAAAAAAf\/bAIQAEAsLCwwLEAwMEBcPDQ8XGxQQEBQbHxcXFxcXHx4XGhoaGhceHiMlJyUjHi8vMzMvL0BAQEBAQEBAQEBAQEBAQAERDw8RExEVEhIVFBEUERQaFBYWFBomGhocGhomMCMeHh4eIzArLicnJy4rNTUwMDU1QEA\/QEBAQEBAQEBAQEBA\/8AAEQgAlgBkAwEiAAIRAQMRAf\/EAHwAAAIDAQEAAAAAAAAAAAAAAAADAgQFAQYBAAMBAQAAAAAAAAAAAAAAAAABAgMEEAABBAEDAwMCBQQDAAAAAAABABECAyExEgRBUSJhEwVxMoGRobEV0UJScjMUJBEAAgICAgMBAQAAAAAAAAAAAAERAiExUQNBEhNxIv\/aAAwDAQACEQMRAD8Are5PONNV02zAf0f80obuwyie4QOBouY6R2+z9WOnVG+xz5DAfUJUpbA85RiPVZ9\/zEIPGsbj3ZgmlOgcI1hKZI8hn1XPckI7jL8HWBL5flzDBo+oSv5DlGJiZu6fqyfZHoeQXhIO4D\/sq1Q8R9Fmcb5Ocd0LySJdexZlpceyFkAYl8IiBzI5kMususkBFkMpMuMgDjIXUIAo\/H86cyKrsy6S\/qrXL5EKaiZddFU4nx9ldgstkABnaMlR5ELudyvYjiNZyegTcSCmCjfybeVY8n9IjQIHEIHk69Hw\/jePTEARc9ZHUq2eDQS5iCl78Gi6eTyUeFyLMVwO1T\/jOXEOYEhevjTCIaIAC4ax2S+jK+KPFWVSjicTEjuuVX28ee+st6L1vI4lNoInEFYXP+KlU86vKHbqFVbp4Znbqayi1xOfVyIf4zH3RVj3Y9l5gTnVMSjghb1N0rqo2Bsj1TaghOSx7o7LnvYcR7fqlefouREtoyPyUjHe6f8AH0QlbT3H5IQB3kcmMKt0fInAHqVZ4FArg8vvnmZ9Vm1Vmd1cZaDyP4LYqwym3Bt1ryXI7QEwMyRBymgsFBskSdkDaoguukeiQ4FzAVW2DgqzPslTGE5E0ea+T4grPuwHjL7gOhUPirjGw0k4kHi\/cLa5NUZwlAjBC88AaOVEtiMltVyoOXsrFkzcXI\/aFIaKMftCkQeiF1CAOxA9\/A0AV2vRUazOVshHXQlTnPlVhxFx6JNZNqOEacJsR2TwayH6rGr50jibBWqr9+I5UtGqcmgJ1R6uuGyJPZUZ2yhmWFSt5Mplokv6JQNuDWnZEpM7IOzqjx6pyL2W7R2fKtTjREARk57oZMyJvLOO4WHy4R9wyGvVa18mPiXHVZPP+8SHUZV02Y9ujR45MqYE9lKP2D6KPH\/4If6hSj9o+iZB3CEIQAm680TJGkmSp\/I3jEQRE9Yh\/wBFYNPvHoW6FSjC+J8YxHqjHBolZrDgpyjypxE5jEvTP6LR+MhZVb5l3Gi7GuZ87ZO3QYTqo6zf6JWcmtKOchzSbJ7AWB6qjyODdXF4Fye2D+qvHJ3apkR7lewgSCiYKdZwY44fI2CVZHuuXiTj8Zarho5sIvIuR26fitQ8OkHSUT6FSjwqwX8pf7F03cj5OZyU6K7DAmwGRIWbz4nDheisiIxYYWLzoGdkYjV0Utknsp\/I3jgezAHURD\/VTIgwYdB+2UuuHtREX9fzUoywFZk1Djg6wQh8oQIdRgP3T2AVamwM3ZMncwRB1UhJfgXXRDAnCs02UGDF86ELJ5UDMMfuOfoqsZciobdxICPXAO8PRtSnUJECTqPuiEgYyySsaNVnJJeUm7OrfG4c6pBy4GWSdQV23o2YW7i0spwlEDH5LO8onfDUajoUwXghwoaNFaR10u+Fk2l+VBu6uW3rPNn\/AKBM9E6oz7Gsfo60jcyhE+IXJ2b5mQwCoxPiFa0c1nNnAx0KLoQI4ZGM8aHKeAS0joq8t2pZgrXHMZw2lNmtHiBdvIppPn0UYc3juHq3btHGrpvL4lV9bSi\/ZdonITqxFqRtiCEeC17eIZwc3j1uK6c6kNkLn8nQSN0ZDrp0Wh7pG6W2smQYqnYDcW2xZtrAYZIr+uEiMOdXadtJEz27KcYyMt2gIyPVN4vEpoidkREy1ICldIRgT1Kh7wLK2U7BkqlZieFbnJoklUTLdMlVVGfY8DBL0UoywlBTicKjEZu+qFF0IAmo1XGmzadDp9EOoWx3RxqMhVA04NOMvciWS27jI0SOByBgS10KvTEd2OqmDerlCYCcjonASPizBMrgAexTPGI3dkmV+sVOWyDKpffuLdl3k3OS5wMhULLskpKpFrByLX6qvHAD66oc2S9FOUC4bQaqtGdpZ0FSicJbEKUThMiGtjHQoOhIQ1+6hKYbGUbUbU5N11c5IRJrPuDT+7+qv1coSiM5VOsBzE9UqyudR3Vlh2TE5q8Gr\/2TE6u6VdzW1KzPft6lLJlI+RdECd2yxZyDMnslSJkWXACdFYppc6IJSbO01EJhiz\/RWBXtiyRYWwOqhs0qtIUYuubU0DCGUyauqe0KYoTNvVCfszP41BBbCEJmpCWuNU3WPmGQhNGdytMVPgqIFb6oQqMx0BU+T+6uUivoUISY0StMm8Q\/qqmTLywhClmtSeFxCFJYIQhIR\/\/Z","2":"\/9j\/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP\/sABFEdWNreQABAAQAAAAeAAD\/4QMpaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI\/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm
Can anyone tell me, what I'm doing wrong and how to fix it?
Thanks in advance
Peter
The data they're supplying for json_data.getString("image") is not a string.
It's an image.
Check the JSON manually. It it's outputting image data then you need to get them to change the JSON. E.g. it should look like this:
"src": "Images/theImage.png",
currently, i retrieve data from database is like that
private void getdatafromphp(){
ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
//http post
try{
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://10.0.2.2/video.php");
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
is = entity.getContent();
}catch(Exception e){
Log.e("log_tag", "Error in http connection"+e.toString());
}
//convert response to string
try{
BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8);
sb = new StringBuilder();
sb.append(reader.readLine() + "\n");
String line="0";
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
is.close();
result=sb.toString();
}catch(Exception e){
Log.e("log_tag", "Error converting result "+e.toString());
}
//paring data
try{
jArray = new JSONArray(result);
JSONObject json_data=null;
json_data = jArray.getJSONObject(jArray.length()-1);
url=json_data.getString("VideoUrl");
}catch(JSONException e1){
}catch(ParseException e1) {
e1.printStackTrace();
}
}
with this php
<?php
mysql_connect("localhost","root","");
mysql_select_db("imammuda");
$sql=mysql_query("select * from Video");
while($row=mysql_fetch_assoc($sql))
$output[]=$row;
print(json_encode($output));
mysql_close();
?>
now i want insert data into database. how to do that?
I had found the sql command which is "insert into table (column1, column2) values ('value1', 'value2')".
This is insert with constant values which is type in php.
What i want is from java there get input from user then copy this input into php 'value1' after that run the php to update the database.
Depending on whether you are using Get or Post
i will assume GET
$value = $_GET['value']; // this will retrieve the value from the url and save it in a variable
mysql_connect("localhost","root","");
// escape the value first
$value = mysql_real_escape_string($value);
mysql_select_db("imammuda");
$result = mysql_query("insert into Video (value) values ('$value')");
?>
learn more about working with the db here
UPDATE
to know the correct request method you can use this.
$req;
if ($_SERVER['REQUEST_METHOD'] == 'GET') {
$req = $_GET;
}else {
$req = $_POST;
}
now you can use $req as your request variable:
$value = $req['value'];