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

question-closed PDO INSERT bindValue

VPS Starter Arubacloud
0 głosów
280 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,710 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,710 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,710 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,710 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ź 232 wizyt
pytanie zadane 11 stycznia 2021 w PHP przez WiktroH Mądrala (6,550 p.)
0 głosów
2 odpowiedzi 174 wizyt
pytanie zadane 9 czerwca 2018 w PHP przez Q7V Gaduła (4,250 p.)
–1 głos
1 odpowiedź 319 wizyt
pytanie zadane 29 lipca 2017 w PHP przez UltraSF Stary wyjadacz (11,740 p.)

92,973 zapytań

141,938 odpowiedzi

321,177 komentarzy

62,301 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 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...