Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Newsletter z funkcji
Forum PHP.pl > Forum > Przedszkole
Maxxuell
Cześć wszystkim,
mógłby mi ktoś pomóc. Chcę zrobić inserta do bazy danych
w bazie mam 3 pola ID, nazwa_email, aktywny

zrobiłem funkcję ale nie wiem czy dobrą

  1. FUNCTION insertEmail($email_name)
  2. {
  3. $dbh = connect();
  4. $query = 'INSERT INTO Baza_email (ID, nazwa_email, aktywny) VALUES (1, '.$email_name.',33)';
  5. $stmt = $dbh->prepare($query);
  6. $stmt->execute();
  7. }


a w kodzie PHP mam coś takiego

  1. <div class="newsletter">
  2. <?php insertEmail($email_name); ?>
  3. <form method="post" action="">
  4. e-mail: <input type="text" name="email_name"> <input name="enter_mail" type="submit" value="Wyślij" />
  5. </form>
  6. </div>


Pewnie coś naknociłem i nie mam pojęcia co....
SmokAnalog
Niestety sporo:
  1. Wywołujesz funkcję insertEmail bez sensu, powinno być np. tak:
    1. if(isset($_POST['email_name'])) {
    2. insertEmail($_POST['email_name']);
    3. }
  2. Czy pole ID jest kluczem? Jeśli tak, to nie możesz mu przypisywać wartości 1 cały czas, bo muszą one być unikalne. Prawidłowe zapytanie wyglądałoby wtedy np. tak:
    1. INSERT INTO Baza_email (nazwa_email, aktywny) VALUES ('ja@mojastrona.pl', 33);
  3. No właśnie, adres e-mail masz bez cudzysłowów w zapytaniu - to też nie zadziała
  4. No i na koniec - zapoznaj się z tematem "prepared statements". Używasz ich, ale wykorzystujesz ich sensu. Adres e-mail podaj we właściwy sposób w zapytaniu, jako token.
Maxxuell
Zmieniłem teraz tak:

  1. <div class="category_product_detail_main_rand" itemscope itemtype="http://schema.org/Product">
  2. <?php
  3. if(isset($_POST['email_name'])) {
  4. insertEmail($_POST['email_name']);
  5. }
  6. ?>
  7. <form method="post" action="">
  8. e-mail: <input type="text" name="email_name"> <input name="enter_mail" type="submit" value="Wyślij" />
  9. </form>
  10. </div>



  1. FUNCTION insertEmail($email_name)
  2. {
  3. $dbh = connect();
  4. $query = 'INSERT INTO Baza_email (nazwa_email, aktywny) VALUES ('.$email_name.', 33)';
  5. $stmt = $dbh->prepare($query);
  6. $stmt->execute();
  7. }


ale bez efektów... sad.gif
SmokAnalog
Napisałem Ci o czterech błędach. Naprawiłeś dwa i się dziwisz, że nie działa.
Maxxuell
Faktycznie przeoczyłem.
Super jesteś wielki!! Dzięki smile.gif
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.