Salve a tutti!
Ne ho provate di tutti i colori, ma non sono riuscito a far funzionare a dovere MySQL su Altervista, mentere sul mio computer il codice sembra funzionare perfettamente :S
Nel codice php per connettermi faccio (scusate il miscuglio tra inglese e ita, ma uso entrambi indistintamente XD):
Codice PHP:
$myconn = mysql_connect("localhost", "username", "password") or die("Impossibile connettersi al server mysql...");
mysql_select_db("my_username", $myconn) or die("Impossibile connettersi al db...");
$query = mysql_real_escape_string($_POST['query'], $myconn);
$result = mysql_query($query, $myconn) or die("Maybe you've mistaken the sintax??");
Il $_POST['query'] è un esempio per dire che ci metto il testo della query lì. Cmq sia ho provato ad eseguire alcune query ed ho ottenuto risultati inspiegabili. Ho cantellato tutte le tabelle sul db per avere una situazione pulite e ho fatto MOLTI test di questo tipo:
prima di tutto ho creato una tabella:
CREATE TABLE utenti (username CHAR(20) NOT NULL, password CHAR(40) NOT NULL, PRIMARY KEY(username));
e fin qui tutto OK, ho anche provato a contollare per sicurezza:
DESCRIBE utenti
e come si ci aspetterebbe:
Codice:
username char(20) PRI
password char(20)
poi però al tentativo di inserire i dati, l'inaspettato:
Codice:
INSERT INTO utenti VALUES ("username", MD5("password"));
FAILED
INSERT INTO utenti VALUES ("username", "password");
FAILED
INSERT INTO utenti (username, password) VALUES ("username", "password");
FAILED
Insomma non funziona in nessuna pasta, l'unica cosa che mi worka è:
INSERT INTO utenti() VALUES();
ma non ha senso!! Ho messo NOT NULL quando ho creato la tabella! E questa è una riga vuota, ovvero costituita da due campi nulli!! XD
se prima di eseguire la insert nulla faccio:
SELECT * FROM utenti
dice OK, e poi che ci sono 0 record
Altimenti dopo mi da un numero di record pari al numero di righe vuote inserite...
Da phpmyadmin sembra funzionare tutto correttamente :S
Ho provato a fare la stessa IDENTICA query e tutto OK...
Ora ho appena notato che forse c'è un altro problema, ma controllerò meglio dopo... per adesso sono curioso di vedere cosa ne pensate voi!!
EDIT:
Ho fatto un paio di modifiche, e adesso sembra funzionicchiare:
-Ho tolto mysql_real_escape_string e ho inserito direttamente la stringa della query.
-Ho cambiato il campo password da CHAR(40) a TEXT, poiché mi sono accorto che alcuni MD5 venivano tagliati XD
Ho fatto una prova persiono usando freesql come db esterno e funziona benissimo!
... l'unico problema è che non capisco...
perché non devo fare l'escape della stringa???? O_O
Tra l'altro, se provo a prendere una stringa di interrogazione con il metodo post continua a darmi errori sulle interrogazioni un minimo complesse... e qui mi verrebbe pensare a qualcosa di escape... ma nn so, voi che dite? XD
Grazie di cuore anticipatamente! Non so quant'è che ci giro in torno!
Jacopo