J'utilise AOP et je ne peux pas insérer des données:Comment insérer des données dans Aop
utilisent ce code:
$sql = 'INSERT INTO `releases` (id, artists, release, label, catalog, date, tracklist, type, status, vote, votes_count) ';
$sql .= 'VALUES (:id, :artists, :release, :label, :catalog, :date, :tracklist, :type, :status, :vote, :votes_count)';
$query = $this->db->prepare($sql);
$query->bindParam(':id', 0, PDO::PARAM_INT);
$query->bindParam(':artists', implode('|||', $data['artists']), PDO::PARAM_STR);
$query->bindParam(':release', $data['release'], PDO::PARAM_STR);
$query->bindParam(':label', $data['label'], PDO::PARAM_STR);
$query->bindParam(':catalog', $data['catalog'], PDO::PARAM_STR);
$query->bindParam(':date', $data['date'], PDO::PARAM_STR);
$query->bindParam(':tracklist', $data['tracklist'], PDO::PARAM_STR);
$query->bindParam(':type', $data['type'], PDO::PARAM_STR);
$query->bindParam(':status', $data['status'], PDO::PARAM_INT);
$query->bindParam(':vote', 0, PDO::PARAM_INT);
$query->bindParam(':votes_count', 0, PDO::PARAM_INT);
$query->execute();
, mais les données ne sont pas insérées à la base de données. tous les noms vérifiés et valides. id comme champ AUTO_INCREMENT. Si j'utilise ce code, $ this-> db-> setAttribute (PDO :: ATTR_ERRMODE, PDO :: ERRMODE_WARNING); $ sql = 'INSÉRER DANS releases
(artistes, version, étiquette, catalogue, date, liste de pistes, type, statut, vote, votes_count)'; $ sql. = 'VALEURS (: artistes,: version,: étiquette,: catalogue,: date,: liste de suivi,: type,: statut,: vote,: votes_count)';
$query = $this->db->prepare($sql);
$array = array(':artists' => implode('|||', $data['artists']),
':release' => $data['release'],
':label' => $data['label'],
':catalog' => $data['catalog'],
':date' => $data['date'],
':tracklist' => $data['tracklist'],
':type' => $data['type'],
':status' => $data['status'],
':vote' => 0,
':votes_count' => 0);
$query->execute($array);
je reçois l'erreur:
Attention: PDOStatement :: execute() [pdostatement.execute]: SQLSTATE [42000]: Erreur de syntaxe ou violation d'accès: 1064 Vous avez une erreur dans votre syntaxe SQL ; consultez le manuel qui correspond à votre version du serveur MySQL pour la bonne syntaxe à utiliser près de 'release, label, catalogue, date, tracklist, type, statut, vote, votes_count) VALUE' à la ligne 1 dans C: \ Program Files \ Wamp \ www \ contrôleurs à venir Application \ \ de \ release.php en ligne
PDO est un peu secret sur les erreurs. Activez d'abord les rapports d'erreur. Voir ici pour plus de détails: http://www.php.net/manual/en/pdo.error-handling.php –
Vous pouvez également vérifier les valeurs dans PDO :: errorCode() et PDO :: errorInfo() après l'instruction a été exécuté pour voir quelle est l'erreur. Personnellement, je définis toujours le mode d'erreur PDO sur des exceptions. Je trouve que cela me donne le meilleur contrôle car une exception est soulevée quand une erreur se produit. Je peux alors attraper ceci et le manipuler en conséquence selon l'application. – Jeremy