Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PDO] Wyswietlenie zapytania po bindParam
Forum PHP.pl > Forum > PHP
prohol
Czy istnieje mozliwosc wyswietlenia zapytanie po wykonaniu bindParam ale przed execute, gdyz nie wiem czy dobrze przypisuje parametry w bindParam

  1. <?php
  2. if ($photo) {
  3. foreach ($photo as $id=>$key) {
  4. $path=$this->photoDir.$key;
  5. //echo $path;
  6. if ($id == 0)
  7. $stm->bindParam(':photo',$path,PDO::PARAM_STR);
  8. else
  9. $stm->bindParam(':photo'.$id,$path,PDO::PARAM_STR);
  10. }
  11. }
  12. ?>


czesc dluzszego zapytania, gdzie photo to tablica w postaci [0]=>'foto1.gif'... i powinien tten kod przypisywac odpowiednie wartosci do :photo, :photo1 itp ale przypisuje te same wartosci do wszystkich :photox (ostatnie $key z petli).
Zapytanie przed moge sobie wyswietlic(i jest poprawne), ale jak to zrobic aby zobaczyc zapytanie z juz zrzutowanymi wartosciami przez bindParam?
SongoQ
Nie da sie zobaczyc zapytania z podstawionymi wartosciami. Pokaz wiecej kodu. Po kazdym podstawieniu musisz execute zrobic. Bo inaczej beda ostatnie wartosci ze zmiennej $path
prohol
Podrzucam kod zapytania:

  1. <?php
  2. $sql="UPDATE ".DB_PREFIX."shop_products SET ss_id=:style,sc_id=:category,
  3. sp_title=:title,sp_author=:author,
  4. sp_text_author=:textAuthor,
  5. sp_music_author=:musicAuthor,sp_tags=:tags,sp_shortdesc=:desc,sp_longdesc=:songT
    ext,sp_normal_price=:normalPrice,
  6. sp_special_price=:specialPrice,sp_send_price=:sendPrice,";
  7. if ($photo) {
  8. foreach ($photo as $id=>$key) {
  9. if ($id == 0)
  10. $sql.="sp_photo_path=:photo,";
  11. else
  12. $sql.="sp_photo_path".$id."=:photo_".$id.",";
  13. }
  14. }
  15. if ($sample)
  16. $sql.="sp_short_path=:shortMp3,";
  17. if ($full)
  18. $sql.="sp_long_path=:fullMp3,";
  19. if ($isclip)
  20. $sql.="sp_clip=:clip,";
  21. $sql.="sp_promotion=:promotion,sp_adult=:adult, sp_date_of_add=now() WHERE sp_id=:sp_id";
  22.  
  23. echo $sql;
  24. //exit(0);
  25. try{
  26.  
  27. $stm=$this->db->prepare($sql);
  28.  
  29. $stm->bindParam(':style',$_POST['style'],PDO::PARAM_INT);
  30. $stm->bindParam(':category',$_POST['category'],PDO::PARAM_INT);
  31. $stm->bindParam(':title',$_POST['title'],PDO::PARAM_STR);
  32. $stm->bindParam(':author',$_POST['author'],PDO::PARAM_STR);
  33. $stm->bindParam(':textAuthor',$_POST['author-text'],PDO::PARAM_STR);
  34. $stm->bindParam(':musicAuthor',$_POST['author-music'],PDO::PARAM_STR);
  35. $stm->bindParam(':tags',$_POST['tags'],PDO::PARAM_STR);
  36. $stm->bindParam(':desc',$_POST['desc'],PDO::PARAM_STR);
  37. $stm->bindParam(':songText',$_POST['song-text'],PDO::PARAM_STR);
  38. $stm->bindParam(':normalPrice',$_POST['price-norm'],PDO::PARAM_STR);
  39. if (isset($_POST['price-prom']))
  40. $stm->bindParam(':specialPrice',$_POST['price-prom'],PDO::PARAM_STR);
  41. if (isset($_POST['sendPrice'])) {
  42. $sendprice=(bool)$_POST['sendPrice'];
  43. $stm->bindParam(':sendPrice',$sendprice,PDO::PARAM_BOOL);
  44. }
  45. if ($photo) {
  46. foreach ($photo as $id=>$key) {
  47. $path=$this->photoDir.$key;
  48. //echo $path;
  49. if ($id == 0){
  50. $stm->bindParam(':photo',$path,PDO::PARAM_STR);
  51. }
  52. else
  53. $stm->bindParam(':photo'.$id,$path,PDO::PARAM_STR);
  54.  
  55. }
  56. }
  57. if (!$isclip)
  58. $stm->bindParam(':clip',$_POST['clip'],PDO::PARAM_STR);
  59.  
  60. if ($sample)
  61. $stm->bindParam(':shortMp3',$sample,PDO::PARAM_STR);
  62. if ($full)
  63. $stm->bindParam(':fullMp3',$full,PDO::PARAM_STR);
  64. if(isset($_POST['promotion'])) {
  65. $prom=(bool)$_POST['promotion'];
  66. $stm->bindParam(':promotion',$prom,PDO::PARAM_BOOL);
  67. }
  68. if (isset($_POST['adult'])) {
  69. $adul=(bool)$_POST['adult'];
  70. $stm->bindParam(':adult',$adul,PDO::PARAM_BOOL);
  71. }
  72. $stm->bindParam(':sp_id',$_GET['p_id'],PDO::PARAM_INT);
  73.  
  74. if ($stm->execute() == false)
  75. return false;
  76. } catch(PDOException $e) {
  77. throw new PDOException($e->getMessage()); 
  78. }
  79. ?>


Chce aby to zapytanie wywolalo sie raz w calosci. Tak sie sklada ze znam max ilosc elementow z tablicy $photo i moge to zastapic np :
  1. <?php
  2. if (isset($photo[0])) {
  3. $path=$this->photoDir.$photo[0];
  4. $stm->bindParam(':photo',$path,PDO::PARAM_STR);
  5. }
  6. if (isset($photo[1])) {
  7. $path1=$this->photoDir.$photo[1];
  8. $stm->bindParam(':photo_1',$path1,PDO::PARAM_STR);
  9. }
  10. if (isset($photo[2])) {
  11. $path2=$this->photoDir.$photo[2];
  12. $stm->bindParam(':photo_2',$path2,PDO::PARAM_STR);
  13. }
  14. if (isset($photo[3])) {
  15. $path3=$this->photoDir.$photo[3];
  16. $stm->bindParam(':photo_3',$path3,PDO::PARAM_STR);
  17. }
  18. if (isset($photo[4])) {
  19. $path4=$this->photoDir.$photo[4];
  20. $stm->bindParam(':photo_4',$path4,PDO::PARAM_STR);
  21. ?>


ale to nie jest optymalnym i cieszacym mnie rozwiazaniem:(
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.