Autore Topic: Problemi con sintassi SQL  (Letto 560 volte)

Offline filosa

  • Nuovo arrivato
  • *
  • Post: 5
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    Windows 7
Problemi con sintassi SQL
« il: 16 Aprile 2012, 18:41:02 CEST »
0
Stò impazzendo... devo inviare una stringa sql ad un php che mi aggiorna un database mysql. In locale tutto funziona , sul server remoto no. La  sintassi sql è la stessa ovvero $query = "UPDATE posizioni SET latit='88000888' WHERE nome='pippo'";
Ho appurato che se edito tale stringa all'interno del php tutto funziona, ma se invio la stringa con POST e la rileggo con $_REQUEST diventa  "UPDATE posizioni SET latit=\'88000888\' WHERE nome=\'pippo\'"
Praticamente vengono aggiunti, non capisco perchè quei "\".
Dove sbaglio , aiuto per favore.

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
R: Problemi con sintassi SQL
« Risposta #1 il: 16 Aprile 2012, 18:51:39 CEST »
0
Posta qualche frammento di codice ;)

Inviato dal mio Galaxy Nexus con Tapatalk 2

Offline filosa

  • Nuovo arrivato
  • *
  • Post: 5
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    Windows 7
Re:Problemi con sintassi SQL
« Risposta #2 il: 16 Aprile 2012, 19:09:06 CEST »
0
invio dei frammenti dei tre file usati per l' update
 
MiaActivity.java

...........
 @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
   setContentView(R.layout.main);
   String resultupdate = send_Dato.send("UPDATE posizioni SET latit='8899444' , longit='44444' WHERE num='pippo'");


send_Dato.java

public class send_Dato {
/////////// Public method to send Query Dato ///////////
/////////// aggiorna il database  ///////////   
   public static String send(String query) {
   String resultupdate = "0";
   InputStream is = null;
   
     //the query to send
     ArrayList<NameValuePair> querySend = new ArrayList<NameValuePair>();
   
     querySend.add(new BasicNameValuePair("querySend",query));
   
     //http post
     try{
       HttpClient httpclient = new DefaultHttpClient();
       HttpPost httppost = new HttpPost("http://www.mio.it/gps_update.php");
       httppost.setEntity(new UrlEncodedFormEntity(querySend));
       HttpResponse response = httpclient.execute(httppost);
       HttpEntity entity = response.getEntity();
       is = entity.getContent();

gps_update.php

$db = mysql_connect($db_host, $db_user, $db_password);
   
   if ($db == FALSE) die ("Errore nella connessione. Verificare i parametri nel file connection.php");
   
   mysql_select_db($db_name, $db)
       or die ("Errore nella selezione del database. Verificare i parametri nel file connection.php");
   
   //preleviamo la query passataci dall’applicazione
   $query = $_REQUEST['querySend'];
   //$query = "UPDATE posizioni SET latit='88000888' WHERE numtaxi='aziz'";
   //eseguiamo la query
   $result = mysql_query ($query);


qui se assegno $query nel php funziona, se $query la carico da $_REQUEST['querySend'];,ci aggiunge i vari"\"

Offline Gigiuz

  • Utente normale
  • ***
  • Post: 187
  • Respect: +23
    • Google+
    • gigiuzzo81
    • Gigiuz81
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Note III
  • Play Store ID:
    GGXSoft
  • Sistema operativo:
    Windows 7 64bit, OS X (virtualized), Ubuntu
Re:Problemi con sintassi SQL
« Risposta #3 il: 17 Aprile 2012, 04:47:52 CEST »
0
Potresti provare a elaborare la stringa in formato URL così:

Codice (Java): [Seleziona]
String queryElaborata = /*java.net.*/URLEncoder.encode(query, /*java.nio.charset.*/Charset.defaultCharset().name());
per poi passarla qui:

Codice (Java): [Seleziona]
querySend.add(new BasicNameValuePair("querySend",queryElaborata));
Hai bisogno di implementare un sistema di "codici seriali di sblocco" nella tua applicazione? Dai un'occhiata alla mia libreria: RemoteUnlocker

Offline filosa

  • Nuovo arrivato
  • *
  • Post: 5
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    Windows 7
Re:Problemi con sintassi SQL
« Risposta #4 il: 17 Aprile 2012, 21:17:00 CEST »
0
niente da fare neanche come mi hai consiglliato, mi sono stancato e per il momento mi sono arrangiato così nel php:

$query = $_REQUEST['querySend'];
   
   //pulisco la stringa perchè mi arriva sporca, con un "\" infianco a "'"
   $query =str_replace("\'","'",$query);
   //eseguiamo la query
   $result = mysql_query ($query);