Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: BARDZO DUZY PROBLEM z dodawaniem rekordów do tabeli w MSSQL
Forum PHP.pl > Forum > Gotowe rozwiązania
konrad1586
Witam wszystkich!
Od kilku dni zastanawiam sie co jest zle w tej linijce kodu?questionmark.gif
$sql = "INSERT INTO my_products (Identyfikator, Nazwa, Cena, Opis) values ('$id_produktu', '$nazwa_produktu', '$cena', '$opis')";

Jest to kawalek kodu ze skryptu który ma dodawać rekordy do tabeli. Oczywiscie korzystam z MS SQL SERVER 2000. Tabela jet zrobiona i posiada identyczne kolumny jakie sa napisane w skrypcie.

Z gory dzieki za pomoc.
[/b]
kossa
wyglada ok, a czy w bazie masz nazwy pol z duzych liter?

Kossa
Kocurro
Nie znam się na MSSQL ... ale sprawdź czy na pewno masz dobre zapytanie...

Miscrosoft ma to do siebie, że lubi łamać standardy więc może i tu skłądnia powinna inaczej wygladać...

Radziłym Ci takze zamiast tych zmiennych wpisać jakieś wartosć przykąłdowe i sprawdzic czy doda...jeśli tak to znaczy, że coś jest źle po stronie php...jeśli nie doda to znaczy, że zapytanie jest walnięte albo coś innego w php...

z opisu wnioskuję, że skrypt wykłada się po linijce z wykonaniem zapytania albo wogóle się nie wywala...wiec najprosćiej to wprowadź jakieś przykałdowe wartosci i sprawdź jak będzie...

a przede wszystkim to zajrzyj do manuala...

trudno jest po tym co podałeś okreslic gdzie jest błąd...całe zapytanie wygląda na obre...ale mogłeś cos na przykąłd pomylić z wielkością liter (jak zasugerował kossa)

pozdrawiam
konrad1586
Sprobowalem wszystkiego co radziliscie i nadal to samo. Kod wyglada nastepujaco:
[php:1:6698a6c61d]<?php

if ((!$id_produktu) || (!$nazwa_produktu) || (!$cena) || (!$opis)) {
header ("Location: http://localhost/addrecord.html");
exit;
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD>
<BODY>
<? php
$sql = "INSERT INTO my_products (Identyfikator, Nazwa, Cena, Opis) values ('$id_produktu', '$nazwa_produktu', '$cena', '$opis')";
//nawiazuje polaczenie z baza
$connection = mssql_connect("localhost", "sa", "b01051986");
//wybiera baze
$db = mssql_select_db("Sklep", $connection) or die ("Nie mozna wybrac bazy");
//zapytanie sql
$sql_result = mssql_query($sql, $connection);
if (!sql_result) {
echo "<P>Nie mozna dodac!";
} else {
echo "
<p>Dodano pozycje!</p>
<table cellspacing=5 cellpadding=5>
<tr>
<td valign=top><strong>Identyfikator produktu:</strong></td>
<td valign=top>$id_produktu</td>
</tr>
<tr>
<td valign=top><strong>Nazwa produktu:</strong></td>
<td valign=top><strong>$nazwa_produktu/td>
</tr>
<tr>
<td valign=top><strong>Cena produktu:</strong></td>
<td valign=top>$cena</td>
</tr>
<tr>
<td valign=top><strong>Opis produktu:</strong></td>
<td valign=top>$opis</td>
</tr>
</table>
";
}
?>


</BODY>
</HTML>

[/php:1:6698a6c61d]

A wysypuje sie taki blad:
Parse error: parse error, unexpected T_VARIABLE in c:inetpubwwwrootdo_addrecord.php on line 19

Oczywiscie przed skryptem jest formularz. I ten kawalek na samym poczatku tego kodu co podalem sprawdza czy sa do niego wpisane jakies wartosci. Jesli nie to przekierowuje go spowrotem na formularz.
DeyV
smile.gif
No cóż - z php jest tak, zę jak mói że ma błąd w lini 19, to bardzo prawdopodobne jest to, że wcale nie ma tam błedu. I tak jest też w tym przypadku - u ciebie błędna jest linia 18 - w końcu co to za zapis <? php - powinno być[b] <?php
kossa
tu nie jest problem z zapytaniem, blad mowi ze cos jest nie tak ze skryptem, sprawdz czy wszystkie sa przekazywane itp.

o spoznilem sie z porada o 2 minuty winksmiley.jpg banalny blad smile.gif nie zauwazylem tez smile.gif

Kossa
konrad1586
HIHI
Wielkie dzieki.
Serio banalny blad. Az glupio sie robi na sama mysl.
punkcik juz dodalem
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-2024 Invision Power Services, Inc.