Il y a 29 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici

 Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet :

mysqli

 
n°62628
Freeed
Posté le 14-12-2007 à 09:13:20  profilanswer
 

Salut :jap:  
 
J'ai un petit problème avec l'utilisation de mysqli avec php...
En gros je fais un fichier image.php qui retourne une image stockée dans la DB.
 
Je l'ai fait avec des requêtes normales et ça fonctionnait... maintenant j'essaie d'utiliser les requêtes préparées et ça foire ><
 
Voici mon code :
 

Code :
  1. <?php
  2. $mysqli = new mysqli ('localhost', 'login', 'pass', 'db');
  3. /* Vérification de la connexion */
  4. if (mysqli_connect_errno ())
  5. {
  6.  printf ("Echec de la connexion : %s\n", mysqli_connect_error ());
  7.  exit ();
  8. }
  9. $query = "SELECT image_album FROM albums WHERE id_album = ?";
  10. /* Préparation de la requête */
  11. if ($stmt = $mysqli->prepare ($query))
  12. {
  13.  $id = $_GET ["id"];
  14.  if (!$stmt->bind_param ("i", $id))
  15.   printf ("Erreur : %s\n", $stmt->error);
  16.  /* Exécution de la requête */
  17.  if (!$stmt->execute ())
  18.   printf ("Erreur : %s\n", $stmt->error);
  19.  printf ("%d lignes affectées.\n", $stmt->affected_rows);
  20.  /* Associations des variables au résultat */
  21.  if (!$stmt->bind_result ($image))
  22.   printf ("Erreur : %s\n", $stmt->error);
  23.  /* Lecture des valeurs */
  24.  while ($stmt->fetch ())
  25.  {
  26.   header ('Content-Type: image/jpeg');
  27.   echo $image;
  28.  }
  29.  /* Fermeture de la requête */
  30.  $stmt->close ();
  31. }
  32. else
  33.  printf ("Erreur : %s\n", $mysqli->error);
  34. /* Fermeture de la connexion */
  35. $mysqli->close ();
  36. ?>


 
Cela m'affiche :

-1 lignes affectées.

donc d'après le manuel php ça vient d'une erreur de requête :cry:
 
Des idées pour résoudre mon problème ?
 
Merci :)


---------------
Saying that Java is nice because it works on all OS's is like saying that anal sex is nice because it works on all genders.
Play loud, drink hard.
n°62629
castor@mat​be
Mutafukaz !
Posté le 14-12-2007 à 11:23:44  profilanswer
 

C'est plus ou moins du chinois pour moi, mais il est où le paramêtre "i" dans ta chaine SQL ???


Message édité par castor@matbe le 14-12-2007 à 11:23:53

---------------
Blog
n°62630
Freeed
Posté le 14-12-2007 à 11:52:35  profilanswer
 

En fait dans la commande bind_param, i c'est pour dire qu'on remplace un entier, s une chaine de caractère, d un double, etc... ;)


---------------
Saying that Java is nice because it works on all OS's is like saying that anal sex is nice because it works on all genders.
Play loud, drink hard.
n°62635
castor@mat​be
Mutafukaz !
Posté le 14-12-2007 à 14:04:04  profilanswer
 

Ahhh okok

 

Et si jamais tu constitues direct ta chaine sql en concaténant au lieu de faire le bind ça passe ou pas ?

 

Ton id est il bien de type numérique (entier) dans la base ?


Message édité par castor@matbe le 14-12-2007 à 14:04:14

---------------
Blog
n°62636
Freeed
Posté le 14-12-2007 à 16:41:48  profilanswer
 

Bah si je fais la chaine directement wai ça passe, mais du coup je dois utiliser autre chose que prepare...
Et oui, l'ID est bien unique (clé primaire).


---------------
Saying that Java is nice because it works on all OS's is like saying that anal sex is nice because it works on all genders.
Play loud, drink hard.
n°62637
Ashe
reenignE esreveR
Posté le 14-12-2007 à 16:49:16  profilanswer
 

->error c'est sur la connexion pas le statement :o
(et lignes affectees sur un select?)


---------------
Globe trotter/SDF - Namur, Belgique
Joy, beautiful spark of the gods, Daughter of Elysium, We enter fire imbibed, Heavenly, thy sanctuary.
Trombi Matbe
n°62638
Freeed
Posté le 14-12-2007 à 17:05:46  profilanswer
 

error ça va aussi sur un stmt :o Et pour les lignes affectées, je pensais que ça comptait le nombre de lignes retournées ^^


---------------
Saying that Java is nice because it works on all OS's is like saying that anal sex is nice because it works on all genders.
Play loud, drink hard.
n°63008
kptn
Posté le 13-01-2008 à 18:57:04  profilanswer
 

est ce que tu as eu une réponse Freeed... j'ai le même pb!
merci

n°63011
Freeed
Posté le 13-01-2008 à 20:31:50  profilanswer
 

Nan, j'ai mis une bête requête non préparée...


---------------
Saying that Java is nice because it works on all OS's is like saying that anal sex is nice because it works on all genders.
Play loud, drink hard.
n°63012
Ashe
reenignE esreveR
Posté le 13-01-2008 à 20:42:14  profilanswer
 

Quelle honte


---------------
Globe trotter/SDF - Namur, Belgique
Joy, beautiful spark of the gods, Daughter of Elysium, We enter fire imbibed, Heavenly, thy sanctuary.
Trombi Matbe
n°63013
Freeed
Posté le 13-01-2008 à 20:43:16  profilanswer
 

Bah si t'avais posté la solution ça aurait p-e été :D


---------------
Saying that Java is nice because it works on all OS's is like saying that anal sex is nice because it works on all genders.
Play loud, drink hard.
n°63014
Ashe
reenignE esreveR
Posté le 13-01-2008 à 20:47:32  profilanswer
 

Code :
  1. <?php
  2.     $img = null;
  3.     $id = $_GET['id'];
  4.     $db = new mysqli ('localhost', 'login', 'pass', 'db');
  5.     if ($db->errno)
  6.         die( 'Echec de la connexion: ' . $db->error );
  7.     $stmt = $db->prepare( 'SELECT image_album FROM albums WHERE id_album = ?' );
  8.     $stmt->bind_param( 'i', $id );
  9.     $stmt->execute();
  10.     $stmt->bind_result( $img );
  11.     if ($stmt->fetch())
  12.     {
  13.         header( 'Content-Type: image/jpeg' );
  14.         echo $image;
  15.     }
  16.     $stmt->close();
  17.     $db->close();
  18. ?>


 
:o


---------------
Globe trotter/SDF - Namur, Belgique
Joy, beautiful spark of the gods, Daughter of Elysium, We enter fire imbibed, Heavenly, thy sanctuary.
Trombi Matbe
n°63015
Freeed
Posté le 13-01-2008 à 20:52:13  profilanswer
 

Mwai ça marche pas terrip' ton truc (même en remplaçant $image par $img ligne 17) :o


---------------
Saying that Java is nice because it works on all OS's is like saying that anal sex is nice because it works on all genders.
Play loud, drink hard.
n°63016
Ashe
reenignE esreveR
Posté le 13-01-2008 à 21:13:32  profilanswer
 

Skwa l'message d'erreur :o


---------------
Globe trotter/SDF - Namur, Belgique
Joy, beautiful spark of the gods, Daughter of Elysium, We enter fire imbibed, Heavenly, thy sanctuary.
Trombi Matbe
n°63017
Freeed
Posté le 13-01-2008 à 21:17:38  profilanswer
 

Y'a pas de message d'erreur... L'url de l'image est affichée... au format jpeg.


---------------
Saying that Java is nice because it works on all OS's is like saying that anal sex is nice because it works on all genders.
Play loud, drink hard.
n°63018
Ashe
reenignE esreveR
Posté le 13-01-2008 à 21:19:16  profilanswer
 

Donc y a pas d'erreur :sol:
(et jrajouterais bien un ptit $stmt->store_result() apres l'execute)


---------------
Globe trotter/SDF - Namur, Belgique
Joy, beautiful spark of the gods, Daughter of Elysium, We enter fire imbibed, Heavenly, thy sanctuary.
Trombi Matbe
n°63019
Freeed
Posté le 13-01-2008 à 21:24:34  profilanswer
 

Bah voilà on y est arrivé :wahoo: Merki pour le coup de main Ashe :jap:


---------------
Saying that Java is nice because it works on all OS's is like saying that anal sex is nice because it works on all genders.
Play loud, drink hard.
n°63020
C4st0r
Vous Dancay Mamoizaylle?
Posté le 13-01-2008 à 21:26:25  profilanswer
 

de rien :o


---------------
Music, Beer & Kish ©, Le vent c'est mal. TM.
Caca. ®
Membre du club des nostalgiques de CyberCafé 21
n°63021
Ashe
reenignE esreveR
Posté le 13-01-2008 à 21:29:16  profilanswer
 

Freeed a écrit :

Bah voilà on y est arrivé :wahoo: Merki pour le coup de main Ashe :jap:


De memoire sans le store_result sur un blob il alloue la taille maskimoum :o
(l'est con)


---------------
Globe trotter/SDF - Namur, Belgique
Joy, beautiful spark of the gods, Daughter of Elysium, We enter fire imbibed, Heavenly, thy sanctuary.
Trombi Matbe

Aller à :
Ajouter une réponse