CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[SQL] Mettre tableau dans BDD

befree
befree
Niveau 8
04 février 2014 à 16:32:30

Bonjour a tous,
Voila j'ai crée une colonne "amis" dans ma base de donnée et j'essaye d'inserer un tableau dans le champ. J'ai cherché et j'ai trouvé qu'on peut utiliser serialize, mais ça ne marche pas :(
Mon code :
<?php
$amis = array('ami1', 'ami2', 'ami3');
$amis2 = serialize($amis);
echo $amis2; // affiche correctement le serialize !
$update = 'UPDATE inscription SET amis ="'.$amis2.'" WHERE pseudo = "'.$_SESSION['USER'].'"'; //ne marche pas, le champ reste le meme dans la bdd
$sql = $db->query($update);
?>

deepblue
deepblue
Niveau 16
04 février 2014 à 16:37:36

Utilites les bind de PDO, les caractères spéciaux doivent planter ta requête.

befree
befree
Niveau 8
04 février 2014 à 16:43:24

Les bind ? Tu peux m'expliquer ou me donner un lien ?
Parce que je viens de débuter le PHP, et le PDO je l'utilise que pour mes requetes mysql, mais au fond je sais pas vraiment comment ça marche, j'ai juste appris a l'utiliser pour mes bdd.
Merci.

deepblue
deepblue
Niveau 16
04 février 2014 à 17:55:56

"pdo bind" sur un moteur de recherche...

http://www.php.net/manual/fr/pdostatement.bindparam.php

befree
befree
Niveau 8
06 février 2014 à 13:14:41

Oui mais je n'arrive pas a l'adapter a mon code... :(
J'ai essaye comme ça:

<?php
$amis = array('ami1', 'ami2', 'ami3');
$amis2 = serialize($amis);
echo $amis2;
$update = 'UPDATE inscription SET amis = :amis WHERE pseudo = "'.$_SESSION['USER'].'"';
$sql = $db->prepare($update);
$sql2 = $sql->bindParam(':amis', $amis2, PDO::PARAM_INT);
$sql3 = $sql2->execute();
?>

Mais ça me met ça :
"Fatal error: Call to a member function execute() on a non-object[...]"

Popovitch
Popovitch
Niveau 26
06 février 2014 à 13:43:37

Regarde la doc et les exemples :ok:

:d) http://fr2.php.net/manual/fr/pdostatement.bindparam.php#example-953

WheresMyMoney
WheresMyMoney
Niveau 6
06 février 2014 à 21:33:49

remplace PARAM_INT par PARAM_STR

ou sinon c'est ta requête qui est fausse

deepblue
deepblue
Niveau 16
07 février 2014 à 14:15:50

$sql = $db->prepare($update);
$sql->bindParam(':amis', $amis2, PDO::PARAM_INT);
$result = $sql->execute();

psychown
psychown
Niveau 6
08 février 2014 à 12:30:02

Ton modèle de base de données n'est pas vraiment correct en fait, ce n'est pas une bonne pratique de mettre un tableau en tant qu'attribut d'une table :(

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Création de sites web
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment