Erreur SQL : Integrity constraint violation
Posté : 08 févr. 2021, 18:58
BONJOUR tout le monde !
là franchement vraiment besoin d'aide!
j'ai fait , défait : rien à faire
voici mon message : SQLSTATE[23000]: Integrity constraint violation: 1048 Le champ 'username' ne peut �tre vide (null)
Ba j'ai fait un var dump justement : $data n'est pas vide !
il n'est pas vide !!
j'ai une table Table (parent): avec ma function :
mon var dump : sur $data me donne:
^ array:3 [▼
"username" => null
"password" => null
"is_admin" => 1
et j ai rempli mon formulaire
mais maintenant du coup je peux meme plus retrouver ma page s'enregistrer !! et je suis pas allée changer ma route !
et j'avais ete voir il y avait mon array rempli sur mon $_POST
je suis completement perdue
j'ai check" les FAQ php et aussi ce genre de message mais ils sont tous sur synfomy
je cool je comprends plus :'
dans mon formulaire j'ai bien tous les champs label input type ! (je dis ca au cas ou)
je me permets de mettre mon fichier register au cas ou ! puisque c'est bien cette page qui veut plus s'ouvrir !

là franchement vraiment besoin d'aide!
j'ai fait , défait : rien à faire
voici mon message : SQLSTATE[23000]: Integrity constraint violation: 1048 Le champ 'username' ne peut �tre vide (null)
Ba j'ai fait un var dump justement : $data n'est pas vide !
il n'est pas vide !!
j'ai une table Table (parent): avec ma function :
public function create(array $data): int
{
$sqlFields = [];
foreach ($data as $key => $value) {
$sqlFields[] = "$key = :$key";
}
$query = $this->pdo->prepare("INSERT INTO {$this->table} SET " . implode(', ', $sqlFields));
$ok = $query->execute($data);
if ($ok === false) {
throw new \Exception("Impossible de CREER l'enregistrement dans la table {$this->table}");
}
return (int)$this->pdo->lastInsertId();
}
mon erreur situe la ligne : $ok = $query->execute($data); mon var dump : sur $data me donne:
^ array:3 [▼
"username" => null
"password" => null
"is_admin" => 1
et j ai rempli mon formulaire
mais maintenant du coup je peux meme plus retrouver ma page s'enregistrer !! et je suis pas allée changer ma route !
et j'avais ete voir il y avait mon array rempli sur mon $_POST
je suis completement perdue
j'ai check" les FAQ php et aussi ce genre de message mais ils sont tous sur synfomy
je cool je comprends plus :'
dans mon formulaire j'ai bien tous les champs label input type ! (je dis ca au cas ou)
je me permets de mettre mon fichier register au cas ou ! puisque c'est bien cette page qui veut plus s'ouvrir !
$user = new User();
$pdo = Connection::getPDO();
$table = new UserTable($pdo);
$table->createUser($user);
$user->getUsername($user);
//si la variable post n'est pas vide c'est que lesdonnees ont bien ete postées
$errors = array();
if (!empty($_POST)) {
if (empty($_POST['username']) || !preg_match('/^[a-zA-Z0-9_]+$/', $_POST['username'])) {
$errors['username']= "Votre pseudo ne correspond pas aux caractères valides";
} } else {
if ($u) {
$errors['username'] = 'Pseudo déjà pris';
}
if (empty($_POST['password']) || $_POST['password'] != $_POST['password_confirm']) {
$errors['password']= "Votre mot de passe ne correspond pas";
}
// pour que mon alert n'apparaisse que lorsque l'on clic sur envoyer !
if (isset($_POST['envoyer'])) {
echo '';
}
if (empty($errors)) {
die('Compte enregistré');
$_SESSION['auth'] = $u;
header('Location: ' . $router->url('blog'));
exit();
}
j'sais pas je vois plus