2 pièce(s) jointe(s)
Insert ou update des données dans une table mysql, champ de type json
Bonjour tout le monde,
je souhaite inserer ce format json : ["ROLE_USER","ROLE_EDITOR","ROLE_ADMIN"] dans une colum de type json dans ma table mysql.
ma table
Code:
1 2 3 4 5
| CREATE TABLE roles(
id int NOT NULL AUTO_INCREMENT,
email varchar(60) NOT NULL,
roles json NOT NULL
); |
Dans mon html, j'ai utilisé des checkbox :
- user => value : ["ROLE_USER"]
- editor => value : ["ROLE_EDITOR"]
- admin => value :["ROLE_ADMIN"]
mon code php
Code:
1 2 3 4 5 6 7 8 9
| if(isset($_POST['roles'])) $roles = $_POST['roles'];
$mesRoles = '';
if (!empty($roles)) {
foreach ($roles as $role) {
$mesRoles .= '"' . $role . '"' . ',';
}
}
$roles = '[' . trim($mesRoles, ',') . ']';
echo $roles; |
resultat => ["ROLE_USER","ROLE_EDITOR","ROLE_ADMIN"]
Pour l'insertion j'ai le code erreur
code erreur :
Fatal error: Uncaught PDOException: SQLSTATE[22032]: <<Unknown error>>: 3140 Invalid JSON text: "Invalid value."
at position 0 in value for column 'users.roles'.
Pièce jointe 630184
je veux ce resultat dans ma base:
Pièce jointe 630186
j'utilise
php vsersion: 7.4.26
mysql : 5.7.36
Wamp
apache 2.4.51