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

Requete préparée limite

thetalc
thetalc
Niveau 11
05 août 2015 à 17:08:54

:salut:
Je développe un petit programme en php et j'ai des requêtes du type :

"INSERT INTO maTable VALUES(?,?...),(?,?,...),(?,?,...),........."

je place donc toutes mes données dans un tableau avec une boucle afin de faire une requête préparée, le tableau final étant du genre :

"$tab = array('1' => array($val, PDO::PARAM_INT),
              '2' => array($val2,PDO::PARAM_INT)
              ...)"

Sauf que php me sort une erreur "PDOStatement::execute(): SQLSTATE[HY000]: General error: 7 number of parameters must be between 0 and 65535".
Au début je ne comprenais pas mais après vérification si j'ai bien saisi, il ne peut pas y avoir plus de 65535 paramètres dans une requête préparée ? ou alors j'ai mal compris car j'ai toruvé peu de doc sur cette erreur
Est-ce que c'est possible de repousser cette limite si c'est bien ça ?

Merci

Message édité le 05 août 2015 à 17:13:37 par thetalc
Darkandgel
Darkandgel
Niveau 10
05 août 2015 à 17:25:42

C'est ce que je comprend aussi.
Tu ne serais pas mieux préparer plusieurs requetes au lieu de tout vouloir mettre dans une seule?

thetalc
thetalc
Niveau 11
05 août 2015 à 17:36:26

Je peux l'envisager oui, à l'origine je faisais une aussi grosse requête d'un coup pour gagner du temps mais si cette limite ne peut pas être modifiée je ferai ça ^^
J'avoue que je m'y attendais pas à cette erreur

BuyAndUse
BuyAndUse
Niveau 7
06 août 2015 à 10:34:54

65535 c'est le nombre de caractère maximum qu'un champs INT d'un serveur SQL peut prendre ... Essaye de changer le type de champs :ok:

thetalc
thetalc
Niveau 11
06 août 2015 à 23:14:30

Je n'ai pas bien saisi ce que je devais changer et où ? Le problème vient d'après toi du serveur SQL ?

Darkandgel
Darkandgel
Niveau 10
06 août 2015 à 23:30:02

Nan, a mon avis tu ne vas pas pouvoir le changer.

Ce que voulais dire Buy c'est que 65535 c'est la taille d'un INT, donc tu peux en deduire que PDO stocke le nombre de parametres d'une requete preparée dans un integer.

Fait plusieurs requetes, tu gagneras du temps, tet tu ne perdras pas tant que ça en terme de perfs

thetalc
thetalc
Niveau 11
07 août 2015 à 15:08:34

je m'en doutais un peu, je vais faire comme ça oui merci

Et je profite du topic, je sais qu'il existe des outils pour accélérer les performances de php (apc, memcache, eaccelerator..). Est-ce que ça peut être utile (et me faire gagner du temps) pour un mon script php ou ce type d'outil est fait pour le php utilisé pour afficher des pages web ? Si oui lequel me conseillez-vous ?

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