SQLSTATE[23000]: Integrity constraint violation:
Résolu/Fermé
kisscool73
Messages postés
79
Date d'inscription
mardi 16 janvier 2018
Statut
Membre
Dernière intervention
20 février 2023
-
27 avril 2020 à 19:38
kisscool73 Messages postés 79 Date d'inscription mardi 16 janvier 2018 Statut Membre Dernière intervention 20 février 2023 - 27 avril 2020 à 21:54
kisscool73 Messages postés 79 Date d'inscription mardi 16 janvier 2018 Statut Membre Dernière intervention 20 février 2023 - 27 avril 2020 à 21:54
A voir également:
- Sqlstate[23000]:
- Sqlstate 23000 - Meilleures réponses
- Nql 23000 - Meilleures réponses
- Nql 23000 ✓ - Forum TV & Vidéo
- NETFLIX : Trop de vidéos ont été téléchargées sur vos appareils mais 0 vidéo ✓ - Forum TV & Vidéo
- SQLSTATE[23000]: Integrity constraint violation: 1048 ✓ - Forum PHP
- Erreur ! SQLSTATE[23000]: Integrity constraint violation: 10 ✓ - Forum PHP
- Sqlstate[42000] ✓ - Forum MySQL
1 réponse
jordane45
Messages postés
38346
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2024
4 717
27 avril 2020 à 19:45
27 avril 2020 à 19:45
Bonjour,
Pour pouvoir te venir en aide il serait utile que tu nous partages le codes correspondant
Fichier : /home/baggysag/www/ow_core/database.php
Ligne : 707 ( affiches nous quelques lignes avant/apres histoire de voir à quoi sert cette ligne de code )
Ca permettra sûrement d'identifier la table concernée.... et la requête qui génère cette erreur.
Sûrement une requête INSERT qui essaye d'insérer une ligne dans la bdd avec un ID déjà existant.
Vu le message d'erreur, je suppose que ton code doit ressembler à ça
Il serait intéressante de faire un echo de la variable $sql
et également dans le foreach des params, faire un echo de $key et $value
Pour pouvoir te venir en aide il serait utile que tu nous partages le codes correspondant
Fichier : /home/baggysag/www/ow_core/database.php
Ligne : 707 ( affiches nous quelques lignes avant/apres histoire de voir à quoi sert cette ligne de code )
Ca permettra sûrement d'identifier la table concernée.... et la requête qui génère cette erreur.
Sûrement une requête INSERT qui essaye d'insérer une ligne dans la bdd avec un ID déjà existant.
Vu le message d'erreur, je suppose que ton code doit ressembler à ça
private function execute( $sql, array $params = null ) { if ( $this->isProfilerEnabled ) { $this->profiler->reset(); } /* @var $stmt PDOStatement */ $stmt = $this->connection->prepare($sql); if ( $params !== null ) { foreach ( $params as $key => $value ) { $paramType = PDO::PARAM_STR; if ( is_int($value) ) $paramType = PDO::PARAM_INT; elseif ( is_bool($value) ) $paramType = PDO::PARAM_BOOL; $stmt->bindValue(is_int($key) ? $key + 1 : $key, $value, $paramType); } } OW::getEventManager()->trigger(new OW_Event("core.sql.exec_query", array("sql" => $sql, "params" => $params))); $stmt->execute(); //TODO setup profiler $this->affectedRows = $stmt->rowCount(); if ( $this->isProfilerEnabled ) { $this->queryExecTime = $this->profiler->getTotalTime(); $this->totalQueryExecTime += $this->queryExecTime; $this->queryCount++; $this->queryLog[] = array('query' => $sql, 'execTime' => $this->queryExecTime, 'params' => $params); } return $stmt; }
Il serait intéressante de faire un echo de la variable $sql
et également dans le foreach des params, faire un echo de $key et $value
Modifié le 27 avril 2020 à 21:00
C'est exactement ça mon script à la ligne près lol.
Le problème, c'est que c'est une function qui retourne un résultat, je dois donc retourner les 3 valeur pour ensuite faire un echo sur la page qui doit récupérer cette valeur. Mais je ne sais pas d'où est lancé cette function.
Après vérification, j'ai le problème uniquement avec mon compte Admin, avec les comptes test, j'ai pas l'erreur.
Donc je suppose que il doit y avoir une des 3 key PRIMARY UNIQUE qui n'est pas unique dans ma table USER ?
Et qui dois donc soit avoir le même id, pseudo, ou mail que moi.
(ben non en faite, je viens de vérifier)
27 avril 2020 à 21:02