Ciao a tutti,
sto studiando con grande interesse la guida di questo sito su PHP e MySQL.
Mi meraviglia che copiando diversi esempi citati nel sito e provandoli in locale ricevo messaggio di errore.Dopo diversi tentativi ho scoperto che per far girare i comandi SQL sul mio sito in locale devo aggiungere virgolette dritte o inclinate
Per esempio, in questa pagina
La query non restituisce nessun valore,codice:$user = "pippo"; // Normalmente questi valori sarebbero ottenuti tramite POST $password = hash('sha256', "paperino"); $query = $mysqli->query("SELECT * FROM login WHERE user = '$user' AND password = '$password'");
Per farla funzionare devo sostituire gli apici di paperino da " a `nella chiamata della funzione hash
La stessa cosa per gli esempi riguardanti il comando INSERTcodice:$password = hash('sha256', `paperino`);
Questo comando copiato dall'esempio della guida mi va in errore:
codice:INSERT INTO login (user, password) VALUES ('pippo', '$password')"
Invece inserendo gli apici questo comando mi funziona correttamente
Adesso mi sono bloccato su questo esempio delle prepared statement che non riesco a far girarecodice:$query = "INSERT INTO `login` (`user`, `password`) VALUES ('paperino', '$password')";
Immagino dipende da qualche settaggio su lingua, numeri, eccetera.codice:$query = $mysqli->prepare("SELECT * FROM login WHERE user = ? AND password = ?"); $query->bind_param('ss',$user,$password); $result = $query->execute();
Il sito gira su
XAMPP 3.2.4
PHP PHP Version 7.2.34 su windows 10 in Italiano
Mi sapete spiegare come mai questa differenza di sintassi?
Grazie mille

Rispondi quotando