Note that there are some explanatory texts on larger screens.

plurals
  1. POHow to use BLOB with JSON and PHP?
    text
    copied!<p>I have a remote database with MySQL, and I am storing photos of the users of my app on the database as a row of the database with LONGTEXT type.</p> <p>I transform the photos to a string with Base64.</p> <p>I connect to my remote database with JSON and PHP, because this, I have to use Base64, because as I know, JSON and PHP need to send strings on the parameters, and with Base64 I can transform the photo into a string.</p> <p>It works ok, but it's very slow. When I am loading a photo of 100 KB, it takes a lot of time, but when I am loading a photo of 5 KB it takes only two or three seconds.</p> <p>A friend told me to use BLOB instead of Base64, but how do I use BLOB with JSON and a PHP connection to the database? Also, I need to store the images on a row of the table <code>USER</code>. This is because the users don't have privileges to upload files into the remote server, but they can upload photos by uploading them as a string in a row of the table <code>USER</code>.</p> <p>thanks</p> <p>EDIT:</p> <p>this is the code where it takes a looot time waiting (it waits in the line: <code>while ((line = reader.readLine()) != null) {</code> , it is waiting on <code>reader.readLine()</code> )</p> <p>this code gets one user from the remote database, it takes a loooooot of time to show the user on my app</p> <pre><code>public Friend RetrieveOneUser(String email) { Friend friend=null; String result = ""; //the parameter data to send ArrayList&lt;NameValuePair&gt; nameValuePairs = new ArrayList&lt;NameValuePair&gt;(); nameValuePairs.add(new BasicNameValuePair("email",email)); //http post InputStream is=null; try{ HttpClient httpclient = new DefaultHttpClient(); HttpPost httppost = new HttpPost(this.BaseURL + this.GetOneUser_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,"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(); }catch(Exception e){ Log.e("log_tag", "Error converting result "+e.toString()); } //parse json data try{ JSONArray jArray = new JSONArray(result); for(int i=0;i&lt;jArray.length();i++) { JSONObject json_data = jArray.getJSONObject(i); friend=new Friend(json_data.getString("email"),json_data.getString("password"), json_data.getString("fullName"), json_data.getString("mobilePhone"), json_data.getString("mobileOperatingSystem"),"",json_data.getString("photo")); } } catch(JSONException e){ Log.e("log_tag", "Error parsing data "+e.toString()); } return friend; } </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload