[php/mssql] Problem z zapisanie danych w bazie

Języki, których efekty są wykonywane po stronie serwera. PHP, ASP czy CGI w połączeniu z bazami danych SQL dają niezwykłe możliwości budowy i zarządzania stron WWW. Tu zadajemy pytania oraz demonstrujemy kod, z którym mamy problem.
Marjar
Posty: 10
Rejestracja: sob sie 20, 2005 12:43 pm
Lokalizacja: Pruszków

[php/mssql] Problem z zapisanie danych w bazie

Post autor: Marjar »

Wysłany: 11.09.2005, 21:50:16 Temat postu: [php/mssql] Problem z zapisanie danych w bazie

--------------------------------------------------------------------------------

Witajcie,

Potrzebuje pomocy. Mam formularz ktory przekazuje dane do skryptu, a on ma zapisac to w bazie, ale niestety potczas przetwarzania pokazuje blad w lini 48 tzn."$wynik = mssql_query($zapytanie);"

Za uwagi z gory dzieki

<?

$nazwa = addslashes ($nazwa_k);
$nip = addslashes ($nip_k);
$kod = addslashes ($kod_pocztowy_k);
$miasto = addslashes ($miasto_k);
$adres = addslashes ($adres_k);
$telefon = addslashes ($telefon_k);

if(!$nazwa || !$kod || !$miasto || !$adres)
{
print "nie wypelniono";
exit;
}

$link = mssql_connect("komp","sa","");
$flag = mssql_select_db ("stacja");
if (!$link || !$flag){
print("problem z pol z baza.");
exit;
}
mssql_select_db("stacja");
$zapytanie = "insert into klient(NAZWA,NIP,KOD_POCZTOWY,
MIASTO,ADRES,TELEFON)";
$ZAPYTANIE .="values ('".$nazwa."','";
$ZAPYTANIE .=$nip."','";
$ZAPYTANIE .=$kod."','";
$ZAPYTANIE .=$miasto."','";
$ZAPYTANIE .=$adres."','";
$ZAPYTANIE .=$telefon."'";
$ZAPYTANIE .=")";

$wynik = mssql_query($zapytanie); // blad w tej linij?????
if($WYNIK)
print "<h2>WPROWADZONO DANE KLIENTA</h2>";
?>
?>[/php]
bwo
Przelotem
Przelotem
Posty: 224
Rejestracja: wt cze 07, 2005 1:50 pm

Re: [php/mssql] Problem z zapisanie danych w bazie

Post autor: bwo »

Kod: Zaznacz cały

$zapytanie = "insert into klient(NAZWA,NIP,KOD_POCZTOWY, 
MIASTO,ADRES,TELEFON)";
zamień na:

Kod: Zaznacz cały

$zapytanie = "insert into klient ";
A jeśli nie bedzie działać to:

Kod: Zaznacz cały

$wynik = mssql_query($zapytanie);
zamień na:

Kod: Zaznacz cały

$wynik = mssql_query($zapytanie) or die(mysql_erroe());
i sprawdz jak brzmi błąd.
Marjar
Posty: 10
Rejestracja: sob sie 20, 2005 12:43 pm
Lokalizacja: Pruszków

Re: [php/mssql] Problem z zapisanie danych w bazie

Post autor: Marjar »

Zamienic na $zapytanie = "insert into klient "; nie moge gdyz nie sa to wszystkie elementy tabeli.

Oto komunikat wyskakujacy:
Warning: mssql_query() [function.mssql-query]: message: Line 2: Incorrect syntax near ')'. (severity 15) in d:\AppServ\www\formularze\slowniki\dodaj_klienta.php on line 48

niestety zaszachował mnie.

Pomocy
bwo
Przelotem
Przelotem
Posty: 224
Rejestracja: wt cze 07, 2005 1:50 pm

Re: [php/mssql] Problem z zapisanie danych w bazie

Post autor: bwo »

A jakie jeszcze masz dane? A może to wina tego, że nazwy pol nie są w cudzysłowiach albo daj SET po klient i przed nawiasem.
jager
Posty: 14
Rejestracja: pn paź 04, 2004 6:15 pm
Lokalizacja: Łódź
Kontakt:

Re: [php/mssql] Problem z zapisanie danych w bazie

Post autor: jager »

Zamiast :
$zapytanie = "insert into klient(NAZWA,NIP,KOD_POCZTOWY,
MIASTO,ADRES,TELEFON)";
$ZAPYTANIE .="values ('".$nazwa."','";
$ZAPYTANIE .=$nip."','";
$ZAPYTANIE .=$kod."','";
$ZAPYTANIE .=$miasto."','";
$ZAPYTANIE .=$adres."','";
$ZAPYTANIE .=$telefon."'";
$ZAPYTANIE .=")";
Napisz:
[php]<?php
$zapytanie = "INSERT INTO klient SET
nazwa = '$nazwa',
nip = '$nip',
kod_pocztowy = '$kod',
miasto = '$miasto',
adres = '$adres',
telefon='$telefon';";
if($wynik = mssql_query($zapytanie)) print("..........");

?>[/php]
i powinno być dobrze, chyba że jest jakaś nieścisłość odnośnie nazw kolumn bazy danych czy coś. Poza tym sprawdź czy wszystkie cudzysłowy są otwarte i domknięte.

Ja jak mam taki problem to robie print($zapytanie); i wstawiam to co wyrzuci do klienta bazy danych. Wtedy lepiej widać co jest źle.

Pozdrawiam i mam nadzieję, że pomogłem.
jager[/quote]
bwo
Przelotem
Przelotem
Posty: 224
Rejestracja: wt cze 07, 2005 1:50 pm

Re: [php/mssql] Problem z zapisanie danych w bazie

Post autor: bwo »

Ja jak mam taki problem to robie print($zapytanie); i wstawiam to co wyrzuci do klienta bazy danych. Wtedy lepiej widać co jest źle.
No to możesz dać:

Kod: Zaznacz cały

echo mysql_error();
i Ci to samo pokaze co w bazie danych.
jager
Posty: 14
Rejestracja: pn paź 04, 2004 6:15 pm
Lokalizacja: Łódź
Kontakt:

Re: [php/mssql] Problem z zapisanie danych w bazie

Post autor: jager »

No to możesz dać:
Kod:
echo mysql_error();

i Ci to samo pokaze co w bazie danych.
W sumie to tak, tylko jak to przerzucę do klienta bazy to lepiej widać wszelki literówki i tego typu sprawy, poza tym łatwiej manipulować tym kodem niż kodem w php.
Przynajmniej tak mi się wydaje.
bwo
Przelotem
Przelotem
Posty: 224
Rejestracja: wt cze 07, 2005 1:50 pm

Re: [php/mssql] Problem z zapisanie danych w bazie

Post autor: bwo »

Nie no w tym masz racje, bo widać zapytanie jako text a nie jako kod w PHP :)
ODPOWIEDZ