Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Baza zapisuje nie to, co ma
Forum PHP.pl > Forum > Przedszkole
artek
Witam, wykonuję taka metodkę

  1. $sth = $this->pdo->prepare("
  2. INSERT INTO
  3. `article`(`aaa`, `sss`, `ddd`, `fff`, `g`, `h`, `jjj`, `kkk`, `lll`)
  4. VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?);")
  5. ->execute(array($aaa, $ddd, $fff, $g, $h, $jjj, $kkk, , $lll));



wszystko było by ok, gdyby nie to, że do bazy ostatnia komorka lll się nie dodaje. nominalnie jest to nazwa obrazkam. do bazy dodaje mi sie tylko logiczna 1, ale wczesniej vardumpujac w zmiennej mam normalna nazwe, ale do bazy jej zapisac juz nie moge, dlaczego tak moze byc, dodam ze wczeiej
Crozin
Czy aby przypadkiem nie masz błędnego typu nadanego dla kolumny? IIRC MySQL jest tak głupi, że ew. tekst spróbuje zamienić na liczbę.
dev11
Cytat(Crozin @ 24.11.2015, 09:29:25 ) *
Czy aby przypadkiem nie masz błędnego typu nadanego dla kolumny? IIRC MySQL jest tak głupi, że ew. tekst spróbuje zamienić na liczbę.

Co to jest II (LL questionmark.gif) RC?
artek
nazwa jest ok, varchar(255)...
dodam, że w innej tabeli ten bazy nie dodaje wogóle rekordu...
mar1aczi
Cytat(artek @ 24.11.2015, 09:26:14 ) *
  1. $sth = $this->pdo->prepare("
  2. INSERT INTO
  3. `article`(`aaa`, `sss`, `ddd`, `fff`, `g`, `h`, `jjj`, `kkk`, `lll`)
  4. VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?);")
  5. ->execute(array($aaa, $ddd, $fff, $g, $h, $jjj, $kkk, , $lll));

Masz `article`(`aaa`, `sss`, `ddd`, `fff`, `g`, `h`, `jjj`, `kkk`, `lll`) oraz execute(array($aaa, $ddd, $fff, $g, $h, $jjj, $kkk, , $lll))
czyli `aaa` => $aaa, `sss` => $ddd, `ddd` => $fff, `fff` => $g, `g` => $h, `h`=> $jjj, `jjj` => $kkk, `kkk`=> '', `lll` => $lll
czy na pewno o takie podstawienie Ci chodzi czy się machnąłeś?
artek
Cytat(mar1aczi @ 24.11.2015, 09:56:57 ) *
Masz `article`(`aaa`, `sss`, `ddd`, `fff`, `g`, `h`, `jjj`, `kkk`, `lll`) oraz execute(array($aaa, $ddd, $fff, $g, $h, $jjj, $kkk, , $lll))
czyli `aaa` => $aaa, `sss` => $ddd, `ddd` => $fff, `fff` => $g, `g` => $h, `h`=> $jjj, `jjj` => $kkk, `kkk`=> '', `lll` => $lll
czy na pewno o takie podstawienie Ci chodzi czy się machnąłeś?

nie ma to znaczenia, zmieniłem to na potrzeby wstawienia na forum, ogólnie zapisuje wszystko dobrze, tylko ostatniego pola nie, zamaist nazwy zawsze wpisuje logiczną 1. a w innej tabeli nie zapisuje w ogóle rekordu
Crozin
@dev11: Google -> IIRC -> IIRC. (informal) If I remember correctly, if I recall correctly..
@artek: W kodzie PHP-owym masz:
  1. ...$kkk, , $lll...
Ten dodatkowy przecinek Ci wszystko psuje.

EDIT:
Cytat
nie ma to znaczenia, zmieniłem to na potrzeby wstawienia na forum, ogólnie zapisuje wszystko dobrze, tylko ostatniego pola nie, zamaist nazwy zawsze wpisuje logiczną 1. a w innej tabeli nie zapisuje w ogóle rekordu
Pokaż w takim razie faktyczny kod.
artek
Cytat(Crozin @ 24.11.2015, 10:04:01 ) *
@dev11: Google -> IIRC -> IIRC. (informal) If I remember correctly, if I recall correctly..
@artek: W kodzie PHP-owym masz:
  1. ...$kkk, , $lll...
Ten dodatkowy przecinek Ci wszystko psuje.

EDIT:
Pokaż w takim razie faktyczny kod.


  1. public function insertArticle($header, $link, $description, $utmMediumHeader, $utmMediumLink, $utmMediumImage, $utmSource, $utmCampaign, $imageName) {
  2. $sth = $this->pdo->prepare("
  3. INSERT INTO
  4. `article`(`header`, `link`, `description`, `utm-medium-header`, `utm-medium-button`, `utm-medium-image`, `utm-source`, `utm-campaign`, `image-name`)
  5. VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?);")
  6. ->execute(array($header, $link, $description, $utmMediumHeader, $utmMediumLink, $utmMediumImage, $utmSource, $utmCampaign, $imageName));
  7. }


tutaj nie działa dodawanie ostatniego argumentu, a poniżej nie działa funkcja cała (wcześniej obie działały)

  1. public function insertImageContent($imageName, $imageContent) {
  2. $sth = $this->pdo->prepare('INSERT INTO `images-content` VALUES (?,?);')->execute(array($imageName, $imageContent));
  3. }
nospor
Zrob
var_dump($imageName);
bezposrednio przed PREPARE oraz pokaz dokladnie jak wyglada struktura twojej tabeli
artek
Cytat(nospor @ 24.11.2015, 10:26:56 ) *
Zrob
var_dump($imageName);
bezposrednio przed PREPARE oraz pokaz dokladnie jak wyglada struktura twojej tabeli

Struktura:
Cytat
1 idPodstawowy int(11) Nie Brak AUTO_INCREMENT
2 header varchar(255) latin1_swedish_ci Tak NULL
3 link varchar(255) latin1_swedish_ci Tak NULL
4 description varchar(255) latin1_swedish_ci Tak NULL
5 utm-medium-header varchar(255) latin1_swedish_ci Tak NULL
6 utm-medium-button varchar(255) latin1_swedish_ci Tak NULL
7 utm-medium-image varchar(255) latin1_swedish_ci Tak NULL
8 utm-source varchar(255) latin1_swedish_ci Tak NULL
9 utm-campaign varchar(255) latin1_swedish_ci Tak NULL
10 image-name varchar(255) latin1_swedish_ci Tak NULL


wykonując funkcję, przed prepare, tak jak mówiłem:
Cytat
bool(true)

czyli źle przekazuje do funkcji, ale dlaczego?
nospor
facepalmxd.gif
Tyle postow by wkoncu zrobic var_dump tam gdzie trzeba....

A skad mamy wiedziec czemu zle przekazujesz do funkcji? Nie widzimy kodu jak to robisz...
artek
Cytat(nospor @ 24.11.2015, 10:38:39 ) *
facepalmxd.gif
Tyle postow by wkoncu zrobic var_dump tam gdzie trzeba....

A skad mamy wiedziec czemu zle przekazujesz do funkcji? Nie widzimy kodu jak to robisz...


Przecież już wcześniej napomknąłem o logicznej jedynce...

  1. $this->insertArticle($header, $link, $description, $utmMediumHeader, $utmMediumLink, $utmMediumImage, $utmSource, $utmCampaign, $imageName);


oto wywołanie, var_dump przed pokazuje, że w $imageName jest nazwa poprawna.
nospor
Cytat
Przecież już wcześniej napomknąłem o logicznej jedynce...
Tja... ale tez jednoczesnie twierdziles ze var_dump pokazuje poprawnie. Widac jednak nie pokazuje... Pokaz caly kod, pokad DOKLADNIE gdzie masz var_dumpy i co ktory dokladnie pokazuje
artek
  1. public function addFullArticle($header, $link, $description, $utmMediumHeader, $utmMediumLink, $utmMediumImage, $utmSource, $utmCampaign) {
  2. if (is_uploaded_file($_FILES['image']['tmp_name'])) {
  3. //tutaj pokazuje wszystko ok, $FILE pokazuje odpowiednia nazwe
  4. $this->returnBeforRows();
  5. if(!empty($header) && !empty($link) && !empty($utmCampaign) && !empty($description)) {
  6. $fileName = $_FILES['image']['tmp_name'];
  7. $imageName = $_FILES['image']['name']; //tu również dobrze
  8.  
  9. $uploaded = $this->uploadImages; //ścieżka do uploadu
  10. $contentTemp = $this->dirTemp . $imageName;
  11.  
  12. move_uploaded_file($fileName, $contentTemp);
  13.  
  14. $imageContent = file_get_contents($contentTemp);
  15.  
  16. //cały czas wporządku
  17. if(!$this->imageContentExists($imageContent) && !$this->imageNameExists($imageName)) {
  18. //dump tutaj pokazuje, że jest ok, ale wchodząc przekazuje jedynkę logiczną (tak samo w elsach)
  19. $this->insertArticle($header, $link, $description, $utmMediumHeader, $utmMediumLink, $utmMediumImage, $utmSource, $utmCampaign, $imageName);
  20. $this->uploadImages($contentTemp, $uploaded, $imageName);
  21. $this->insertImageContent($imageName, $imageContent);
  22. } else if($this->imageContentExists($imageContent) && $this->imageNameExists($imageName)) {
  23. $imageName = $this->content($imageContent);
  24. $this->uploadImages($contentTemp, $uploaded, $imageName);
  25. $this->insertArticle($header, $link, $description, $utmMediumHeader, $utmMediumLink, $utmMediumImage, $utmSource, $utmCampaign, $imageName);
  26. } else if($this->imageContentExists($imageContent) && !$this->imageNameExists($imageName)) {
  27. $imageName = $this->content($imageContent);
  28. $this->uploadImages($contentTemp, $uploaded, $imageName);
  29. $this->insertArticle($header, $link, $description, $utmMediumHeader, $utmMediumLink, $utmMediumImage, $utmSource, $utmCampaign, $imageName);
  30. } else {
  31. $imageName = $this->uploadImagesOtherName($contentTemp, $uploaded, $imageName);
  32. $this->insertArticle($header, $link, $description, $utmMediumHeader, $utmMediumLink, $utmMediumImage, $utmSource, $utmCampaign, $imageName);
  33. $this->insertImageContent($imageName, $imageContent);
  34. }
  35. return true;
  36. }
  37. return false;
  38.  
  39. }
  40. }
nospor
php sam z siebie nie zamienia przekazywanych parametrow. Tam musi byc cos jeszcze smile.gif
artek
Cytat(nospor @ 24.11.2015, 11:22:56 ) *
php sam z siebie nie zamienia przekazywanych parametrow. Tam musi byc cos jeszcze smile.gif


wiem, że nie, ale nic innego nie widzę sad.gif

EDIT: dalej nie znalazłem błędu, ktoś ma jakieś pomysły?
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.