Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Zapis danych do bazy
tombog
post 9.12.2010, 16:38:24
Post #1





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 9.12.2010

Ostrzeżenie: (0%)
-----


Witam. Mam problem, którego nie mogę rozwiązać już drugi dzień. Zupełnie nie wiem o co chodzi. Przeczytałem masę tutoriali i kursów, ale nie potrafię rozwiązać problemu z zapisaniem danych do bazy. Napisałem plik pierwszy.php o takiej treści:

Kod
<?
//////////////////// połączenie z bazą danych
@$dane = mysql_pconnect("localhost", "root", "mojehaslo");
if (!$dane)
  {
    print "wystąpił błąd w połączeniu";
      exit;
        }
        print "połączenie zostało nawiązane poprawnie";

print "<br><br>";
///////////////////// wybór bazy danych /////////////////////////////////////
$wyborbazy=@mysql_select_db("test");
if ($wyborbazy)
  {
    print("została wybrana baza test");
      }

      else {
        print("wystąpił błąd przy wyborze bazy danych");
          exit;
               }

/////////////////////// zapis do tabel w bazie danych //////////////////////////////////////
$query = "insert into dane values ('".."', '".coś tam."', '".drugie coś."', '".trzecie coś."', '".czwarte coś."')";
mysql_query($query);

?>


Plik łączy się z bazą danych, ale nic do niej nie wpisuje. Jeśli natomiast w phpMyAdmin wykonam ręcznie zapytanie:

Kod
insert into dane values ('".."', '".coś tam."', '".drugie coś."', '".trzecie coś."', '".czwarte coś."')

To dane się do bazy dopisują. Cóż takiego źle robię w pliku php, że z jego poziomu nie mogę nic dopisać do bazy ?

Ten post edytował tombog 9.12.2010, 16:39:36
Go to the top of the page
+Quote Post
wookieb
post 9.12.2010, 16:40:59
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Temat: Jak poprawnie zadac pytanie
Zacznij od "Przygotuj właściwie środowisko pracy"


--------------------
Go to the top of the page
+Quote Post
tombog
post 9.12.2010, 18:23:18
Post #3





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 9.12.2010

Ostrzeżenie: (0%)
-----


Kod
<?
//////// przygotowanie środowiska pracy
error_reporting(E_ALL);
ini_set('display_errors','1');

//////////////////// połączenie z bazą danych
$dane = mysql_pconnect("localhost", "root", "thombog");
if (!$dane)
  {
    print "wystąpił błąd w połączeniu";
      exit;
        }
        print "połączenie zostało nawiązane poprawnie";

print "<br><br>";
///////////////////// wybór bazy danych /////////////////////////////////////
$wyborbazy=mysql_select_db("test");
if ($wyborbazy)
  {
    print("została wybrana baza test");
      }

      else {
        print("wystąpił błąd przy wyborze bazy danych");
          exit;
               }

/////////////////////// zapis do tabel w bazie danych //////////////////////////////////////
$query = "insert into dane values ('".."', '".coś tam."', '".drugie coś."', '".trzecie coś."', '".czwarte coś."')";
mysql_query($query) or die('BŁĄD:'.mysql_error());

?>


Błąd jaki otrzymałem:
Kod
Parse error: syntax error, unexpected '.' in /var/www/html/pierwszy.php  on line 29


Rozumiem, że kropki są nie mile widziane, więc je usunąłem:
Kod
$query = "insert into dane values ('""', '"coś tam"', '"drugie coś"', '"trzecie coś"', '"czwarte coś"')";


i otrzymałem wtedy:

Kod
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /var/www/html/pierwszy.php on line 29


OK, usunąłem więc znaki ":

Kod
$query = "insert into dane values ('', 'coś tam', 'drugie coś', 'trzecie coś', 'czwarte coś')";


i w odpowiedzi dostałem:

Kod
połączenie zostało nawiązane poprawnie

została wybrana baza testinsert into dane values ('', 'coś tam', 'drugie coś', 'trzecie coś', 'czwarte coś')


poprawiłem więc na:

Kod
$query = "insert into 'dane' values ('', 'coś tam', 'drugie coś', 'trzecie coś', 'czwarte coś')";


co dało w efekcie:

Kod
połączenie zostało nawiązane poprawnie

została wybrana baza test

BŁĄD:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''dane' values ('', 'coś tam', 'drugie coś', 'trzecie coś', 'czwarte coś')' at line 1


Zastanawiam się czy jest gdzieś granica tej zabawy ? Przecież pierwotna postać wpisana przez phpmyadmin dodała wpis, a w pliku php ciągle pluje błędami ? Gdzie robię błąd questionmark.gif?

OK, więc pomimo wyświetlania błędów, dane do bazy są dopisywane poprzez:

Kod
$query = "INSERT INTO `dane` VALUES ('', 'coś', 'drugie coś', 'trzecie coś', 'czwarte coś')";


Dlaczego jednak wyświetla się tekie coś:
Kod
połączenie zostało nawiązane poprawnie

została wybrana baza testINSERT INTO `dane` VALUES ('', 'coś', 'drugie coś', 'trzecie coś', 'czwarte coś')


i jak się tego pozbyć ?

Ten post edytował tombog 9.12.2010, 17:41:07
Go to the top of the page
+Quote Post
Rahael
post 9.12.2010, 18:36:12
Post #4





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 31.01.2010

Ostrzeżenie: (0%)
-----


  1. // zapis do tabel w bazie danych
  2. $query = "INSERT INTO dane VALUES ('', 'coś_tam', 'drugie_coś', 'trzecie_coś', 'czwarte_coś')";
  3. mysql_query($query) or die('BŁĄD:'.mysql_error());

po co na wyborze tabeli dajesz `` lub ' '. Mi wchodzi bez tego.

Ten post edytował Rahael 9.12.2010, 18:40:20
Go to the top of the page
+Quote Post
tombog
post 9.12.2010, 21:05:57
Post #5





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 9.12.2010

Ostrzeżenie: (0%)
-----


No mi też bez tego wychodzi smile.gif. Problem rozwiązałem w międzyczasie, można więc temat zamknąć.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 31.07.2025 - 08:51