Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Brak zapisu do bazy
lustfingers
post
Post #1





Grupa: Zarejestrowani
Postów: 99
Pomógł: 5
Dołączył: 18.03.2015

Ostrzeżenie: (0%)
-----


Witam, mam 3 pliki a.php, b.php i c.php

Plik a.php ma formularz z action do pliku b.php gdzie najpierw chce uzyskać zapis do bazy oraz następnie użyć tych samych danych do kolejnego formularza który jest w pliku b.php dane sie ładnie przesyłają z pliku a.php do b.php tylko nie następuje zapis.

Kod zapisu z pliku b.php

  1. <?php
  2. ini_set('display_errors', '1');
  3. try
  4. {
  5. $pdo = new PDO('mysql:host=localhost;dbname=somename', 'someuser', 'somepass');
  6. $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  7. $pdo->exec('SET NAMES "utf8"');
  8. }
  9. catch (PDOException $e)
  10. {
  11. $error = 'Nie można nawiązać połączenia z serwerem bazy danych.';
  12. include 'error.html.php';
  13. exit();
  14. }
  15.  
  16. if (isset($_POST['number']) OR isset($_POST['name']) OR isset($_POST['purpose']) OR isset($_POST['clientname']) OR isset($_POST['weight']) OR isset($_POST['datefrom']) OR isset($_POST['dateto']))
  17. {
  18. try
  19. {
  20. echo $_POST['date'];
  21. $sql = 'CREATE TABLE IF NOT EXISTS `table1` (
  22. `id_receipts` INT NOT NULL AUTO_INCREMENT,
  23. `number` TEXT,
  24. `name` TEXT,
  25. `purpose` TEXT,
  26. `clientname` TEXT,
  27. `weight` float,
  28. `datefrom` DATE,
  29. `dateto` DATE,
  30. `date` DATE
  31. )';
  32. $sql .= 'INSERT INTO `table1` SET
  33. number = '.$_POST['number'].',
  34. name = '.$_POST['name'].',
  35. purpose = '.$_POST['purpose'].',
  36. clientname = '.$_POST['clientname'].',
  37. weight = '.$_POST['weight'].',
  38. datefrom = '.$_POST['datefrom'].',
  39. dateto = '.$_POST['dateto'].',
  40. date = '.$_POST['date'].'';
  41. $s = $pdo->prepare($sql);
  42. $s->execute();
  43. }
  44. catch (PDOException $e)
  45. {
  46. $error = 'Błąd przy zapisie: ' . $e->getMessage();
  47. include 'error.html.php';
  48. exit();
  49. }
  50.  
  51. header('Location: .');
  52. exit();
  53. }
  54.  
  55. ?>


W pliku b.php poniżej tego kodu jest kolejny formularz z action do pliku c.php natomiast po przejściu z a.php do b.php jest biała strona bez żadnego komunikatu błędu.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
viking
post
Post #2





Grupa: Zarejestrowani
Postów: 6 381
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


Zacznij lekturę od https://prophp.pl/advice/show/14/jak_czytac...mentacje_php%3F. Później przeczytaj ze stopki o pdo. Ostatnią wartość powinno zwrócić http://php.net/manual/en/pdo.lastinsertid.php. twój cały prepare nie ma sensu bo przed niczym nie zabezpiecza ani nie poprawia nawet czytelności. Dodatkowo mieszasz zapytanie ddl ze zwykłym który rządzi się innymi prawami przy bindowaniu. Query coś zwraca - patrz pierwszy podany link.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 14.10.2025 - 08:35