|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||||
|
Invité de passage
![]() |
Bonjour à tous!
J'ai un problème avec une fonction préparé pdo depuis des jours et je trouve pas la solution alors je viens vous voir, peut-être que quelqu'un saura m'aider... Voici la requête : Code :
Code :
J'ai aussi printé toutes les valeurs passé en param : Code :
Mon problème est que cette fonction ne retourne rien, alors que si je la colle dans phpmyadmin en remplaçant les variable par leur valeur et en ajoutant des quote autour des dates j'ai des données qui me sont retournées. Avant d'utiliser bindvalue j'utilisait execute avec un tableau mais le résultat était le même... get_distance_metres est une fonction mysql qui fonctionne, pas de problème de ce côté la. Je pense que je dois avoir une erreur au niveau du passage des paramètres mais je vois pas ou... Quelqu'un aurait une idée? merci d'avance... |
||||||
|
|
00
|
|
|
#2 |
|
En attente de confirmation mail
![]() Inscription : juin 2002 Messages : 6 164 ![]() |
1 paramètre = 1 valeur et non plusieurs (rapport aux liste, liste2, liste3 et IN).
Si je ne me trompe pas (cf la requête finale), en tant que liste d'entiers, elle sera alors tronquée à la première virgule donc une valeur (la première) entière. Et, en chaîne, ça ne fonctionnerait pas non plus (avec l'ajout des quotes, ça ne donnerait qu'une chaîne littérale comportant le tout). Il faut procéder autrement (abandonner le préparé ?). |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() |
Je viens de tester en remplaçant les IN par des = 35
Ca devrait me retourner une valeur, le 35 correspondant à une compétence d'une personnes, mais le résultat est le même...C'est possible que ce soit une erreur de sql et que cette erreur ne soit pas affichée? Merci de ton aide! |
|
|
00
|
|
|
#4 |
![]() ![]() Inscription : septembre 2010 Messages : 7 131 ![]() |
t'as activé la gestion des erreurs ?
http://php.net/manual/fr/pdo.error-handling.php
__________________
http://blog.stealth35.com/ |
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() |
oui a l'instanciation de mon objet :
new PDO('mysql:host=127.0.0.1;dbname=nomBase', 'root', 'romain', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION)); Et aucune erreur ne s'affiche, ca serait plus simple sinon ^^ Le probleme pourrait venir de la procédure stocké qui ne serait pas bien utilisée? |
|
|
00
|
|
|
#6 |
![]() ![]() Inscription : septembre 2010 Messages : 7 131 ![]() |
ton display_errors est bien sur On ? et ton error_reporting sur E_ALL | E_STRICT
ps : surtout pas de or die pour debugger du PDO
__________________
http://blog.stealth35.com/ |
|
|
00
|
|
|
#7 |
|
Invité de passage
![]() |
oui oui tout ca est bien activé...j'ai déjà eu des erreurs dans du code pdo et à chaque fois pdo renvoyait des erreurs qui étaient affichées;
La je n'ai aucun retour... Je me demande si cela ne vient pas de la procédure stockée qui ne doit pas être appelé comme ca...Si ça se trouve je dois d'abord faire une première requête puis une seconde qui appelera uniquement la fonction mysql... non? |
|
|
00
|
|
|
#8 |
|
Expert Confirmé
![]() ![]() |
Salut,
Il se peut que PDO ne sache pas gérer une syntaxe particulière mais généralement j'ai toujours récupéré une erreur. Sinon la remarque de Julp est pertinente, je pense qu'il va falloir abandonner le prepare(). Dès que c'est exotique, PDO ne suit plus trop. Ce que tu peux essayer (aucune garantie) : convertir explicitement les type INT. Quand tu rattaches des PDO: Code :
$this->requetePrepareRecherche->bindValue(':competence1', $competencePrincipalRechercheParam * 1, PDO::PARAM_INT)
__________________
# Dans la Création, tout est permis mais tout n'est pas utile... |
|
00
|
|
|
#9 | ||
|
Invité de passage
![]() |
J'ai trouvé
Je vous donne la solution ca peut aider ^^ J'avais 2 problemes : Le IN n'est pas géré par pdo comme disait julp, du coup il me mettait IN (1) et forcément j'avais rien qui correspondait en et en plus de ca j'avais une vulgaire faute de copier coller...j'avais mis 2 fois la même variable au niveau des dates du coup il faisait un between entre 2 dates identiques... Je suis donc passé par des variables classique dans ma chaine, mais je perds en securite du coup...Enfin bon ca fonctionne c'est bien le principal : Code :
Merci à tous ceux qui m'ont aidé!!! |
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com