1 pièce(s) jointe(s)
Requête préparée avec tableau d'entiers
Bonjour,
Je souhaite utiliser une requête préparée avec la commande DELETE pour supprimer des données grâce à un tableau d'entiers (des identifiants).
Ces identifiants sont récupérés au format JSON.
Voici la structure de la table où je souhaite faire ma requête :
Pièce jointe 403153
J'ai commencé par un premier code qui fonctionne :
Code:
1 2 3 4 5 6 7 8 9 10 11
|
<?php
require_once('connexiondb.php');
$json = file_get_contents('php://input');
$arrayTopicIds = json_decode($json);
$stmt = $db->prepare('DELETE FROM topicspe WHERE topicpe_id IN ('.implode(',', array_map('intval', $arrayTopicIds)).')');
$stmt->execute();
$stmt->closeCursor();
?> |
Mais je préfère faire ça un peu plus proprement comme ceci :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
<?php
require_once('connexiondb.php');
$json = file_get_contents('php://input');
$arrayTopicIds = json_decode($json);
$topicsIds = implode(',', array_map('intval', $arrayTopicIds));
$stmt = $db->prepare('DELETE FROM topicspe WHERE topicpe_id IN (:ids)');
$stmt->bindParam(':ids', $topicsIds);
$stmt->execute();
$stmt->closeCursor();
?> |
Mais le message suivant apparaît :
SQLSTATE[22007]: Invalid datetime format: 1292 Truncated incorrect DOUBLE value: '13,14'
Qu'aurais-je oublié ?
En vous remerciant pour votre aide.