Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Zapis danych do bazy
Forum PHP.pl > Forum > Przedszkole
tombog
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 ?
wookieb
Temat: Jak poprawnie zadac pytanie
Zacznij od "Przygotuj właściwie środowisko pracy"
tombog
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ć ?
Rahael
  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.
tombog
No mi też bez tego wychodzi smile.gif. Problem rozwiązałem w międzyczasie, można więc temat zamknąć.
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-2025 Invision Power Services, Inc.