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

question-closed PDO INSERT bindValue

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

92,539 zapytań

141,382 odpowiedzi

319,477 komentarzy

61,928 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...