Skocz do zawartości

Błąd SQLSTATE[HY093]:


itpawel

Rekomendowane odpowiedzi

Wyświetla mi się błąd i nie mogę znależć jego przyczyny: Fatal error: Uncaught PDOException: SQLSTATE[HY093]: Invalid parameter number: parameter was not defined in C:\xampp\htdocs\edit_article.php:140 Stack trace: #0 C:\xampp\htdocs\edit_article.php(140): PDOStatement->bindParam(':tytul', NULL, 2) #1 {main} thrown in C:\xampp\htdocs\edit_article.php on line 140

 

Zbiory nie są puste!

 

$id =(int)$_GET['id'];

$sqli = $db->Prepare('SELECT id, tytul, tekst, autor FROM `artykuly` WHERE `id` = :id');
                $sqli -> bindParam(':id', $id, PDO::PARAM_INT);
                $sqli -> bindParam(':tytul', $tytul, PDO::PARAM_STR);
                $sqli -> bindParam(':tekst', $tekst, PDO::PARAM_STR);
                $sqli -> bindParam(':autor', $autor, PDO::PARAM_INT);
$sqli -> execute();
$val = $sqli -> fetch();

if($val !== false) {
      echo 'ok'; // instrukcja wyświetla 'ok'
  }
  else {
  echo 'źle';
  }

 

obraz.thumb.png.1860a9101a3f713a8caed050e602d162.png

Odnośnik do komentarza
Udostępnij na innych stronach

Przecież masz komunikat błędu

Cytat

Invalid parameter number: parameter was not defined i

 

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Jednak nie wiem, jak daję print_r($sqli -> fetch()); to wyświetla, że są wartości:
Array ( [id] => 10 [0] => 10 [autor] => 77 [1] => 77 [tytul] => pppp [2] => pppp [tekst] =>

pppp

ale jak chcę wywołać to nic się nie pokazuje:
$val = $sqli -> fetchAll();
echo $val['tekst'];

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli zamieszczasz kod to używaj opcji [ < > ] kod do tego celu przewidzianej!

 

Funkcja bindParam oczekuje zmiennej $nazwanej więc jesli nie ma takiej zmiennej to masz bład!

Cytat

Do dołączania parametrów do zapytania przygotowanego przez funkcję prepare mamy dostępne dwie funkcje bindParam oraz bindValue, które dają ten sam efekt czyli podłączają wartości do zapytania. Jedyna różnica pomiędzy nimi to taka że bindParam atrybut jest przekazywany przez referencję zaś w przypadku bindValue przez wartość. Poniższe przykłady powinny jasno pokazać różnicę.


Używaj funkcji  bindValue

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności