Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Mysql]problem z dodawaniem danych do bazy
Forum PHP.pl > Forum > Przedszkole
plsd
Witam mam oto takie zapytanie sql
  1. CREATE TABLE komentarze
  2. (
  3. komentarz_id int UNSIGNED NOT NULL AUTO_INCREMENT,
  4. news_id int UNSIGNED NOT NULL,
  5. nazwa_uz varchar(16) NOT NULL,
  6. DATA TIMESTAMP(10),
  7. tresc text NOT NULL,
  8.  
  9. PRIMARY KEY(komentarz_id,news_id,nazwa_uz)
  10. );
  11.  

która tworzy tabele komentarze oraz taki kod php który powinien dodać dane do tabeli komentarze ,lecz tego nie robi
  1. $komentarz = strip_tags($_POST['komen']);
  2.  
  3. $news_id = $_GET['news_id'];
  4. $prawid_uzyt = $_SESSION['prawid_uzyt'];
  5.  
  6.  
  7. $zap = $pdo -> prepare("insert into komentarze values (0, :news_id, :prawid_uzyt, now() , :komentarz");
  8. $zap->bindValue( ':news_id', $news_id, PDO::PARAM_INT);
  9. $zap->bindValue( ':prawid_uzyt', $prawid_uzyt, PDO::PARAM_STR );
  10. $zap->bindValue( ':komentarz', $komentarz, PDO::PARAM_STR );
  11. $zap->execute();

.Nie wiem co jest źle nawet jeśli zapytanie realizowanie za pomocą php będzie wyglądać tak
  1. INSERT INTO komentarze VALUES ("0, 2, 'Lorem', now() , LOrem");

to dane się nie dodają do tabeli.
erix
  1. "0, 2, 'Lorem', now() , LOrem"

Możesz mi powiedzieć, co to ma być? (vide: "uszy")
plsd
Przepraszam ,że się dziś dopiero odzywam.Więc tak to linijka o którą pytasz to po prostu przykładowe wypełnienie.Próbowałem coś sam zrobić ,ale nie wiem co jest nie tak uprościłem trochę kod , oto i on
  1. <?php
  2.  
  3. try
  4. {
  5. $pdo = new PDO('mysql:host=localhost;dbname=pow','root','//haslor');
  6. echo 'Połączenie nawiązane!';
  7. }
  8. catch(PDOException $e)
  9. {
  10. echo 'Połączenie nie mogło zostać utworzone: ' . $e->getMessage();
  11. }
  12. $news_id = 5;
  13. $prawid_uzyt = 'plsd';
  14.  
  15.  
  16. $zap = $pdo -> prepare("insert into kome values (NULL, :news_id, :prawid_uzyt");
  17.  
  18. $zap->bindValue(':news_id', $news_id, PDO::PARAM_INT);
  19. $zap->bindValue(':prawid_uzyt', $prawid_uzyt, PDO::PARAM_STR );
  20.  
  21. if($zap->execute())
  22. {
  23. echo "wszystko ok";
  24. }
  25. ?>
Po wykonaniu tego kodu wiem ,że połączenie jest nawiązane lecz zapytanie nie jest realizowane.Dodaje też kod sql którym tworze tabele
  1. CREATE TABLE kome
  2. (
  3. komentarz_id int UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
  4. news_id int UNSIGNED NOT NULL,
  5. nazwa_uz varchar(16) NOT NULL
  6.  
  7. );
nowotny
Nie używałem jeszcze PDO więc nie wiem czy to to ale nie zamknąłeś nawiasu w zapytaniu:
  1. $zap = $pdo -> prepare("insert into komentarze values (0, :news_id, :prawid_uzyt, now() , :komentarz");


Ewentualnie dodaj sobie PDOStatement->errorInfo i będziesz wiedział gdzie masz błąd...
plsd
dzięki rzeczywiście taka mała rzecz ,a tyle problemów.
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.