konto usunięte

Temat: Błąd przy próbie dodania rekordu do bazy Mysql

Mam problem z wysyłaniem kartek ze strony - założenie jest takie, że po wypełnieniu formularza dane z formularza mają być dodane do bazy i jednocześnie ma być wysłany mail zawierający link do kartki z życzeniami.

Jednak po wypełnieniu formularza i kliknięciu WYŚLIJ pojawia się komunikat że kartka została wysłana ale też i komunikat o błędzie : "Błąd nie udało się dodać nowego rekordu".

Poniżej wklejam fragment kodu, o który chodzi - mail jest wysyłany ale rekord nie jest zapisywany do bazy. Zmieniałam już na różne sposoby kod dotyczący zapisywania do bazy ale nie pomagało. Może ktoś z Was wpadnie akurat na jakiś błąd, który robię...


<?php


function odbierz($pole) {
$pole = trim($pole);
if (get_magic_quotes_gpc()) $pole = stripslashes($pole);
return htmlspecialchars($pole, ENT_QUOTES);
}


$odbiorca = odbierz($_POST["odbiorca"]);
$nadawca = odbierz($_POST["nadawca"]);
$mailodbiorcy = odbierz($_POST["mailodbiorcy"]);
$mailnadawcy = odbierz($_POST["mailnadawcy"]);
$tresc = odbierz($_POST["tresc"]);

if (isset($_POST['wyslany'])) {


srand((double)microtime()*1000000);
$id = md5(uniqid(rand()));
$kartkaid = $id;

require_once('../../mysql_connect.php');

$query = "INSERT INTO wielkanoc VALUES ('".$kartkaid."', '".$odbiorca."', '".$nadawca."', '".$mailodbiorcy."', '".$mailnadawcy."', '".$tresc."')";
$result = @mysql_query ($query);

if ($result) {
echo "Rekord został dodany poprawnie";
} else {
echo 'Błąd nie udało się dodać nowego rekordu';
}
Aleksandra P. edytował(a) ten post dnia 10.03.11 o godzinie 21:01
Mariusz Witek

Mariusz Witek Programista PHP,
Front-End Developer

Temat: Błąd przy próbie dodania rekordu do bazy Mysql

Po pierwsze usuń znak @ sprzed mysql_query(), błąd może powiedzieć coś więcej.

Co do głównego problemu, to dobrze by było wypisać przed VALUES nazwy kolumn, do których mysql ma wrzucić dane, tzn zamiast:

"INSERT INTO 
wielkanoc
VALUES
('".$kartkaid."', '".$odbiorca."', '".$nadawca."', '".$mailodbiorcy."', '".$mailnadawcy."', '".$tresc."')";


Wpisz (tylko wpisz swoje nazwy kolumn)

"INSERT INTO 
wielkanoc
(id, odbiorca, nadawca, emial, emailnadawcy, tresc)
VALUES
('$kartkaid', '$odbiorca', '$nadawca', '$mailodbiorcy', '$mailnadawcy', '$tresc')";
Mariusz Witek edytował(a) ten post dnia 10.03.11 o godzinie 21:28

konto usunięte

Temat: Błąd przy próbie dodania rekordu do bazy Mysql

Dzięki za pomoc Mariuszu! :)

Zamieniłam fragment:


$query = "INSERT INTO wielkanoc VALUES ('".$kartkaid."', '".$odbiorca."', '".$nadawca."', '".$mailodbiorcy."', '".$mailnadawcy."', '".$tresc."')";
$result = @mysql_query ($query);

if ($result) {
echo "Rekord został dodany poprawnie";
} else {
echo 'Błąd nie udało się dodać nowego rekordu';
}


na:

$query = "INSERT INTO WIELKANOC (kartkaid, odbiorca, nadawca, mailodbiorcy, mailnadawcy, tresc) VALUES ('$kartkaid', '$odbiorca', '$nadawca', '$mailodbiorcy', '$mailnadawcy', '$tresc')";
$result = mysql_query ($query);

if ($result) {
echo "Rekord został dodany poprawnie";
} else {
$message = mysql_error();
echo 'Błąd nie udało się dodać nowego rekordu';
echo '<font color="red">', $message, '</font>';}


Dodałam mysql_error() i pokazał mi o jaki błąd chodzi - napisałam małymi literami nazwę tabeli a w bazie jest wielkimi. :)
Teraz chyba jest ok. :) Przynajmniej komunikat mówi o tym, że rekord został dodany. :)Aleksandra P. edytował(a) ten post dnia 11.03.11 o godzinie 07:00



Wyślij zaproszenie do