Newsgroup: it.comp.www.php
Titolo: chiocciola maledetta!!

Ciao,
eseguo una query per recuperare dei dati da un DB:
SELECT * FROM $tabella WHERE email = '
indi...@email.cx
'
Se metto la chiocciola non mi trova un cavolo, se tolgo la chiocciola e
ovviamente la tolgo anche nel relativo campo del database tutto va bene
quindi vuol dire che la stringa è corretta.
Come faccio con questa cacchio di chiocciola???
Grazie

Il 13/07/06 10:12, pollom ha scritto:

Credo che il problema sia da qualche altra parte.
MySQL 4.0.25 su WinXP PRO:
mysql> select * from my_table;       
+-----------+------------+           
| Nome      | email      |           
+-----------+------------+           
| pippo     | 
a...@bbb.cc
 |           
| topolino  | d...@eee.ff |           
| pluto     | g...@hhh.ii |           
| paperino  | l...@mmm.nn |           
+-----------+------------+           
4 rows in set (0.00 sec)             
 
mysql> select * from my_table where email = '
a...@bbb.cc
';
+-------+------------+               
| Nome  | email      |               
+-------+------------+               
| pippo | 
a...@bbb.cc
 |               
+-------+------------+               
1 row in set (0.00 sec)              
Contestualizza meglio il problema ed eventualmente riporta un
frammento del codice che non restituisce quello che ti aspetti. Se
non fosse un problema legato al PHP, prova a chiedere su
it.comp.software.database.
Ciao.
-- 
Federico

 
Ecco il codice che uso:
...
...
$connessione = mysql_connect($db_host,$db_user,$db_password)or die("impossibile connettersi al db");
$query  = "SELECT * FROM $nome_tabella WHERE email = '
m...@email.cx
'";
$risultato = mysql_db_query($db_nome,$query); 
$num = mysql_num_rows($risultato);
if ($num == 1) {
  while($array=mysql_fetch_array($risultato)){ echo ' 
  /*--- qui visualizza i dati del database ---*/ ';
  }
  } else {
  $errore = '<span class="Stile19">errore connessione al database,
  </span>'; echo $errore;
  }
} else {
//non autenticato
echo 'Errore';
}
...
...
è come se la chiocciola venisse interpretata non come stringa ma come
altro. Quando la tolgo funziona correttamente lo script altrimenti mi da
errore.
Qualche consiglio???

 Qualche consiglio???
intanto potresti postare l'errore che restituisce..
http://php.net/mysql_real_escape_string
 ..
-- 
www.iuz-lab.info

 Qualche consiglio???
Se esegui la query direttamente da console, ottieni lo stesso
risultato?
-- 
Federico

 risultato?
Ci provo e ti faccio sapere

 
Non mi restituisce nessun errore di sistema, solo al condizionale mi
esegue la sezione relativa alla variabile $errore

 "errore connessione al database" della variabile $errore
Se visualizzi a video la variabile $errore allora il numero delle
righe restituito dalla query č diverso da uno (non necessariamente
zero). Prova a modificare il controllo su $num.
$num = mysql_num_rows($risultato);
if ($num > 0) {
...
-- 
Federico

 
Si cacchio era quello, che distratto!!! Grazie mille ho risolto!!!

 Si cacchio era quello, che distratto!!! Grazie mille ho risolto!!!
Meglio cosě.
Ciao.
-- 
Federico

quindi vuol dire che la stringa è corretta.
Prova a ripetere la query usando il client da linea di comando, per vedere
cosa succede. Cosi' alla cieca, prova a mettere \@ nella query, invece che
@; sai mai che ci fossero dei problemi con l'escape, la codepage o chissa'
che altro.
Leonardo a tentoni
-- 
Dawn is near, the time is short (Human aircraft! Hard to port!)
We eight reindeers of the night work as one in silent flight.
Let not one damn house pass by (Who taught that guy how to fly?)
Each year sees more girls and boys: how many of them can we bring toys?