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
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'");
La query non restituisce nessun valore,
Per farla funzionare devo sostituire gli apici di paperino da " a `nella chiamata della funzione hash
codice:
$password = hash('sha256', `paperino`);
La stessa cosa per gli esempi riguardanti il comando INSERT
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
codice:
$query = "INSERT INTO `login` (`user`, `password`) VALUES ('paperino', '$password')";
Adesso mi sono bloccato su questo esempio delle prepared statement che non riesco a far girare
codice:
$query = $mysqli->prepare("SELECT * FROM login WHERE user = ? AND password = ?");
$query->bind_param('ss',$user,$password);
$result = $query->execute();
Immagino dipende da qualche settaggio su lingua, numeri, eccetera.
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