• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed PDO INSERT bindValue

Aruba Cloud - Virtual Private Server VPS
0 głosów
341 wizyt
pytanie zadane 25 maja 2020 w PHP przez spicedagger Użytkownik (530 p.)
zamknięte 25 maja 2020 przez spicedagger

Próbuję dodać coś do bazy, i mimo poprawnych nazw wyskakuje błąd nie ogarniam o co chodzi poniżej kod i ss od bazy. Nie mam pojęcia dlaczego nie znajduje kolumny

 SQLSTATE[42S22]: Column not found: 1054 Unknown column 'idpost' in 'field list' in C:\XAMPP\htdocs\blog\post.php:17 Stack trace: #0 C:\XAMPP\htdocs\blog\post.php(17): PDO->prepare('INSERT INTO dan...') #1 {main}




<?php  
require_once 'database.php';
if(isset($_POST['tytul'])&& isset($_POST['tresc'])){
	$data=date('Y-d-m');
$tytul=$_POST['tytul'];
$tresc=$_POST['tresc'];
$autor="RaDy Autor BLOGA"; 
$idpost=NULL;
}
try{
	

		
$stmt = $db->prepare("INSERT INTO posty (idpost,data,tytul,tresc,autor) VALUES (:idpost,:data,:tytul,:tresc,:autor)");
$stmt->bindValue(':idpost',$idpost,PDO::PARAM_INT);
$stmt->bindValue(':data',$data,PDO::PARAM_STR);
$stmt->bindValue(':tytul',$tytul,PDO::PARAM_STR);
$stmt->bindValue(':tresc',$tresc,PDO::PARAM_STR);
$stmt->bindValue(':autor',$autor,PDO::PARAM_STR);
	$data=date('Y-d-m');
$tytul=$_POST['tytul'];
$tresc=$_POST['tresc'];
$autor="RaDy Autor BLOGA"; 
$idpost=NULL;


$stmt->execute();
	{
		throw new Exception(mysqli_connect_errno());
	}

	}
catch(Exception $e)
		{
			echo  '<span style="color:red;">Błąd serwera! Przepraszamy za niedogodnośći i prosimy o rejstrację w innym terminie.</span>';
			echo '<br/> Informacja developrska: '.$e;
		}

echo<<<END


<div>
 <center><form action="" method="post">
		TYTUŁ: 
		<br> <input type="text" name="tytul" size="100"/><br> 
		<br> 
END;

	
	  echo "<br>";
	echo "<input type='hidden' name='autor' value='RaDy Autor BLOGA'/>";
	  echo "<br>";
echo<<<END
<br>
		TREŚĆ POSTA: <br>
		
		<br>
		
		<textarea class="impki"style="overflow:auto;resize:none"  name="tresc" cols="90" rows="20"></textarea>
		<br>
	

		<br>
    <input type='submit' name='autor' value='DODAJ POST DO BAZY'/>
	</form>
	 </center>
	</div>
END;
?>




 

komentarz zamknięcia: rozwiązany przez autora pytania
komentarz 25 maja 2020 przez Chess Szeryf (76,730 p.)

A nie lepiej byłoby zastosować w tym przypadku wieloargumentowość isset?

<?php
if(isset($a, $b) === true) {
  echo 'Accepted Challenge';
}
?>
komentarz 25 maja 2020 przez spicedagger Użytkownik (530 p.)
No tam można zrobić, zresztą to nie w tym był błąd

obojętne już znalazłem błąd, szkoda że nie da się usuwać zapytania bo zaraz po dodaniu rozwiązałem,

1 odpowiedź

0 głosów
odpowiedź 25 maja 2020 przez Chess Szeryf (76,730 p.)
edycja 25 maja 2020 przez Chess
$stmt = $db->prepare("INSERT INTO posty (idpost,data,tytul,tresc,autor) VALUES (NULL,:data,:tytul,:tresc,:autor)");

A spróbuj tak.

A dobra, bo masz tego NULLa w zmiennej. W takim razie napisz w ten sposób. Zmień "typ" bindowania na PDO::PARAM_NULL.

 

komentarz 25 maja 2020 przez spicedagger Użytkownik (530 p.)
wlałem się w nazwie tabeli jak się kurde okazało, jednak jak się długo ślęczy nad kodem to ślepota się wkrada
komentarz 25 maja 2020 przez Chess Szeryf (76,730 p.)

Dobrze, ale masz chyba niepoprawny "typ", nie? Zedytowałem odpowiedź.

https://www.php.net/manual/en/pdo.constants.php

komentarz 25 maja 2020 przez spicedagger Użytkownik (530 p.)
nie wiem jak w końcu ma być obie wersje działają dla int i null więc nie wiem gdzie różnica
komentarz 26 maja 2020 przez Chess Szeryf (76,730 p.)
edycja 26 maja 2020 przez Chess
Musiałbym doszukać w dokumentacjach, dlaczego działa to i to, ale lepiej byłoby, abyś skorzystał z rozwiązania dedykowanego. "Typ" został umieszczony w standardzie PHP w PDO i korzystając z rekomendowanego rozwiązania, kod będzie najprawdopodobniej bardziej odporny na bugi, itp. przede wszystkim wtedy, gdy nie czytasz o zmianach w wersji nowszej, gdzie po wprowadzeniu featureów nagle ni stąd, ni zowąd dostaniesz undefined behavior aplikacji, która w wersji starszej działała bez zarzutów.

Podobne pytania

0 głosów
1 odpowiedź 347 wizyt
pytanie zadane 11 stycznia 2021 w PHP przez WiktroH Mądrala (6,550 p.)
0 głosów
2 odpowiedzi 196 wizyt
pytanie zadane 9 czerwca 2018 w PHP przez Q7V Gaduła (4,250 p.)
–1 głos
1 odpowiedź 349 wizyt
pytanie zadane 29 lipca 2017 w PHP przez UltraSF Stary wyjadacz (11,740 p.)

93,337 zapytań

142,332 odpowiedzi

322,423 komentarzy

62,676 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...