Witam,
popełniłem taki oto kod, niestety wykonuje on wyłącznie dwa pierwsze zapytania do bazy danych, natomiast nie wykonuje trzeciego zapytania (dodanie kodu rabatowego do bazy danych).
<?php
if (isset($_POST['sub_email'])) {
$db_host = '***';
$db_name = '****';
$db_login = '*****';
$db_passwd = '******';
try {
$conn = new PDO('mysql:host=' . $db_host . ';dbname=' . $db_name, $db_login, $db_passwd);
$conn -> exec('SET NAMES utf8');
}
catch(PDOException $e) {
die ("Błąd połączenia z bazą!: " . $e->getMessage() . "<br/>");
}
$query = 'SELECT * FROM `sklep_newsletter` WHERE email = :email';
$stmt = $conn -> prepare($query);
$stmt -> bindParam(':email', $email, PDO::PARAM_STR);
try {
$stmt -> execute();
}
catch(PDOException $e) {
}
$row = $stmt->fetch(PDO::FETCH_ASSOC);
if ($row > 0) {
}
else {
$query = 'INSERT INTO `sklep_newsletter` (email) VALUES (:email)';
$stmt = $conn -> prepare($query);
$stmt -> bindParam(':email', $email, PDO::PARAM_STR);
try {
if ($stmt -> execute()) {
$email_status = 1;
$stmt -> closeCursor();
}
else {
$email_status = 0;
$stmt -> closeCursor();
}
}
catch(PDOException $e) {
}
$wartosc_znizki = 10.00;
$waznosc_od = date("Y-m-d"); $waznosc_do = "0000-00-00";
$wartosc_zam_min = 0;
$wartosc_zam_max = 0;
$id_waluty = 1;
$ilosc_produktow_min = 0;
$ilosc_produktow_max = 0;
$jednorazowy = 1;
$aktywny = 1;
$query = 'INSERT INTO `sklep_kody_rabatowe` (nazwa, kod, wartosc_znizki, waznosc_od, waznosc_do wartosc_zam_min, wartosc_zam_max, id_waluty, ilosc_produktow_min, ilosc_produktow_max, jednorazowy, aktywny) VALUES (:nazwa, :kod, :wartosc_znizki, :waznosc_od, :waznosc_do, :wartosc_zam_min, :wartosc_zam_max, :id_waluty, :ilosc_produktow_min, :ilosc_produktow_max, :jednorazowy, :aktywny)';
$stmt = $conn -> prepare($query);
$stmt -> bindParam(':nazwa', $email, PDO::PARAM_STR);
$stmt -> bindParam(':kod', $kod, PDO::PARAM_STR);
$stmt -> bindParam(':wartosc_znizki', $wartosc_znizki, PDO::PARAM_INT);
$stmt -> bindParam(':waznosc_od', $waznosc_od, PDO::PARAM_STR);
$stmt -> bindParam(':waznosc_do', $waznosc_do, PDO::PARAM_STR);
$stmt -> bindParam(':wartosc_zam_min', $wartosc_zam_min, PDO::PARAM_INT);
$stmt -> bindParam(':wartosc_zam_max', $wartosc_zam_max, PDO::PARAM_INT);
$stmt -> bindParam(':id_waluty', $id_waluty, PDO::PARAM_INT);
$stmt -> bindParam(':ilosc_produktow_min', $ilosc_produktow_min, PDO::PARAM_INT);
$stmt -> bindParam(':ilosc_produktow_max', $ilosc_produktow_max, PDO::PARAM_INT);
$stmt -> bindParam(':jednorazowy', $jednorazowy, PDO::PARAM_INT);
$stmt -> bindParam(':aktywny', $aktywny, PDO::PARAM_INT);
try {
if ($stmt -> execute()) {
$subject = 'Witaj w Newsletterze - odbierz swój kupon rabatowy.';
$message = 'Bla Bla Bla Twój kupon to: ' . $kod;
$headers[] = 'MIME-Version: 1.0';
$headers[] = 'Content-type: text/html; charset=UTF-8';
$headers[] = 'From: Sklep ***.com <sklep@***.com>';
mail($email, $subject, $message, implode("\r\n", $headers));
$kod_status = 1;
}
else {
$kod_status = 0;
}
}
catch(PDOException $e) {
}
if ($email_status == 1 && $kod_status == 1) {
echo 'Dodano email i wysłano kod';
}
if ($email_status == 1 && $kod_status == 0) {
echo 'Dodano email i nie wysłano kodu ';
}
if ($email_status == 0 && $kod_status == 1) {
echo 'Nie dodano emaila i wysłano kod';
}
if ($email_status == 0 && $kod_status == 0) {
echo 'Nie dodano emaila i nie wysłano kodu';
}
}
}
else {
}
?>
Druk kodu błędu zwraca tablicę:
(
[0] => 00000
[1] =>
[2] =>
)
Także nic mi to kompletnie nie mówi. Nie wypluwa też żadnych innych błędów (parse, sql), dlatego nie widzę dlaczego nie wykonuje się zapytanie do bazy danych. Proszę o pomoc w rozwiązaniu problemu.
Pozdrawiam
Ten post edytował rozny 20.01.2017, 12:13:49