-
Errore mysql
Ciao,
sono anni che continuo a usare lo stesso script per creare nuovi utenti e oggi ha deciso si non funzionare più.
Praticamente ho una tabella user con 15 campi però q1uando registro l'utente inserisco solo username e password con il codice che mi aveva fatto mi pare mzanella qualche anno fa e ha sempre funzionato.
Oggi ha deciso di dare questo errore:
Codice:
Field 'name' doesn't have a default value
Il codice è questo
Codice PHP:
include("config.php");
$username=$_POST['username'];
$password=password_hash($_POST['password'], PASSWORD_DEFAULT);
$query = "INSERT INTO user (username, password) VALUES (?,?)";
$stmt = mysqli_prepare($con, $query);
if (!$stmt) {
die('mysqli error: '.mysqli_error($con));
}
mysqli_stmt_bind_param($stmt, "ss", $username, $password);
mysqli_stmt_execute($stmt) or die(mysqli_stmt_error($stmt));
Grazie
-
Presupponendo che il campo "name" sia di tipo "VARCHAR(255)", dovresti rimuovere il "NOT NULL" dal campo "name": puoi farlo semplicemente da phpMyAdmin: seleziona il tuo database (a sinistra: my_tuttainformatica), quindi vai nel campo SQL ed incolla:
Codice:
ALTER TABLE `user` CHANGE `name` `name` VARCHAR(255)
Quindi premi "esegui".
Altrimenti puoi impostare un valore di default per il campo "name":
Codice:
ALTER TABLE `user` CHANGE `name` `name` VARCHAR(255) NOT NULL DEFAULT 'name'
Ciao!
-
Ciao,
grazie; si effettivamente così posso mettere solo username e password nel database però non posso modificare i dati mi rimane sempre NULL mentre se metto un valore di default ovviamente mi vengono estratti come se fossero dati inseriti...
Ma perché questo problema???
-
Perché la nuova versione di Mysql non permette che un campo sia né "NOT NULL" né non abbia un valore di default.
Hai provato ad impostare una stringa vuota come default?
Codice:
ALTER TABLE `user` CHANGE `name` `name` VARCHAR(255) NOT NULL DEFAULT ''
Ciao!
-