Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> [PHP][MYSQL]Skrypt dodawania (problem), Dodawanie danych do bazy mysql...
beka
post
Post #1





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 2.08.2009

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


Witam serdecznie.
Napisałem skrypt, który ma za zadanie dodawanie danych do bazy danych mysql.
Podczas testowania lokalnie (localhost) wyświetlany jest błąd :
Warning: require_once(DB.php) [function.require-once]: failed to open stream: No such file or directory in /var/www/dodaj.php on line 4Fatal error: require_once() [function.require]: Failed opening required 'DB.php' (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/dodaj.php on line 4" title="Zobacz w manualu PHP" target="_manual

To jest zapewne efekt złego zainstalowania php czy coś (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) (pracuję na linuxie - Ubuntu 9.04). To jednak jest mało ważne.

Główny problem polega na tym, iż po wprowadzeniu i zatwierdzeniu danych... nic się nie dzieje (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) zamiast wyświetlać cokolwiek, pokazuje się czysta strona (testowane na dobrym serwerze w sieci z obsługą najnowszego php, mysql itd. wszystkie pakiety zainstalowane - więc tego błędu z DB.php nie wyświetla (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) ).

Oto kod :

  1. <?php
  2. function insert_db($title, $author, $edition, $format, $year){
  3. require_once('db_login.php');
  4. require_once('DB.php');
  5. $connection =
  6. DB::connect("mysql://$db_username:$db_password@$db_host/$db_database");
  7. if (DB::isError($connection)){
  8.  die('Nie mozna nawiazac polaczenia z baza danych: <br />'.
  9. DB::errorMessage($connection));
  10. }
  11. $title = stripslashes($title);
  12. $author = stripslashes($author);
  13. $edition = stripslashes($edition);
  14. $format = stripslashes($format);
  15. $year = stripslashes($year);
  16. }
  17.  
  18. $title - mysql_real_escape_string($title);
  19. $author - mysql_real_escape_string($author);
  20. $edition - mysql_real_escape_string($edition);
  21. $format - mysql_real_escape_string($format);
  22. $year - mysql_real_escape_string($year);
  23.  
  24. $query = "INSERT INTO `plyty` VALUES (NULL, '$title', '$author', '$edition', '$format', '$year')";
  25. $result = $connection->query($query);
  26. if (DB::isError($result)){
  27. die ('Nie mozna wykonac zapytania do bazdy danyc: <br />'. $query.'
  28. '.DB::errorMessage($result));
  29. }
  30. echo 'Dane zostały wstawione pomyślnie.<br />';
  31. $query = 'SELECT * FROM `plyty`';
  32. $result = $connection->query($query);
  33. if (DB::isError($result)){
  34. die('Nie mozna wykonac zapytania do bazy danych : <br />'. $query.'
  35. '.DB::errorMessage($result));
  36. }
  37. echo '<table border="1">';
  38. echo '<tr><th>Tytuł</th><th>Autor</th><th>Wydanie</th><th>Format</th><th>Rok</th></tr>';
  39. while ($result_row = $result->fetchRow(DB_FETCHMODE_ASSOC)) {
  40. echo '<tr><td>';
  41. echo $result_row['tytul'] .'</td><td>';
  42. echo $result_row['autor'] .'</td><td>';
  43. echo $result_row['wydanie'] .'</td><td>';
  44. echo $result_row['format'] .'</td><td>';
  45. echo $result_row['rok'] .'</td></tr>';
  46. }
  47. echo '</table>';
  48. $connection->disconnect();
  49. }
  50. ?>
  51. <html>
  52. <head>
  53. <title>Wstawianie danych</title>
  54. </head>
  55. <body>
  56. <?php
  57. $title = htmlentities($_GET['tytul']);
  58. $author = htmlentities($_GET['autor']);
  59. $edition = htmlentities($_GET['wydanie']);
  60. $format = htmlentities($_GET['format']);
  61. $year = htmlentities($_GET['rok']);
  62. if (($title != NULL ) && ($author != NULL ) && ($edition != NULL ) && ($format != NULL ) && ($year != NULL)){
  63.  insert_db($title,$author,$edition,$format,$year);
  64. }
  65. else {
  66. <h1>Wprowadź nową pozycję:</h1>
  67. <form action="'.$_SERVER['PHP_SELF'].'" method="GET">
  68. <table><tr>
  69. <td><label>Tytuł:<input type="text" name="tytul" id="tytul" /></label></td>
  70. <td><label>Autor:<input type="text" name="autor" id="autor" /></label></td>
  71. <td><label>Wydanie:<input type="text" name="wydanie" id="wydanie" /></label></td>
  72. <td><label>Format:<input type="text" name="format" id="format" /></label></td>
  73. <td><label>Rok:<input type="text" name="rok" id="rok" /></label></td><br />
  74. <input type="submit" value="Zatwierdź" />
  75. </tr></table>
  76. </form>';
  77. }
  78. ?>
  79. </body>
  80. </html>


Bardzo proszę o pomoc.
Pozdrawiam.
Go to the top of the page
+Quote Post
zeten
post
Post #2





Grupa: Zarejestrowani
Postów: 36
Pomógł: 2
Dołączył: 1.08.2009
Skąd: Katowice, Rybnik

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


Warning: require_once(DB.php) [function.require-once]: failed to open stream: No such file or directory in /var/www/dodaj.php on line 4

/var/www/ <-- nie masz tutaj pliku DB.php
Go to the top of the page
+Quote Post
beka
post
Post #3





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 2.08.2009

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


no wiem, ale nie mam pojęcia skąd go wziąć i co ma w nim być :] opierałem się o książkę, w której było napisane, że to jakiś tam pakiet pear, który się instaluje sam (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ...
ale mówię - ten problem to tam pikuś... bardziej mnie interesuje i tak działanie skryptu na serwerze w sieci...
Go to the top of the page
+Quote Post
zeten
post
Post #4





Grupa: Zarejestrowani
Postów: 36
Pomógł: 2
Dołączył: 1.08.2009
Skąd: Katowice, Rybnik

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


To pewnie zlepiły Ci się strony ;-) require_once('DB.php'); <-- domyślam się, że w DB.php będą się znajdowały dane do łączenia z bazą danych. Poczytaj jeszcze raz ten rozdział z książki ;-)
Go to the top of the page
+Quote Post
beka
post
Post #5





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 2.08.2009

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


Nie nie (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Dane do łączenia znajdują się w db_login.php
DB.php = PEAR DB

Ale mówię - mnie bardziej interesuje ten drugi problem... z serwerem sieciowym, na którym nie ma tego błędu. Po prostu nie wyświetla się nic, chociaż w linku pojawia się (przykładowe dane wprowadziłem) /index.php?tytul=Breakfast+In+America&autor=Supertramp&wydanie=A%26M+Records&format=1LP&rok=1979
Go to the top of the page
+Quote Post
marian2299
post
Post #6





Grupa: Zarejestrowani
Postów: 272
Pomógł: 9
Dołączył: 6.06.2009

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


  1. <?php
  2. $query = "INSERT INTO `plyty` VALUES (NULL, '$title', '$author', '$edition', '$format', '$year')";
  3. ?>

zamień na
  1. <?php
  2. $query = "INSERT INTO `plyty` VALUES (NULL, '".$title."', '".$author."', '".$edition."', '".$format."', '".$year"')";
  3. ?>


i tak dalej...
Go to the top of the page
+Quote Post
beka
post
Post #7





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 2.08.2009

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


Cytat(marian2299 @ 2.08.2009, 20:36:59 ) *
  1. <?php
  2. $query = "INSERT INTO `plyty` VALUES (NULL, '$title', '$author', '$edition', '$format', '$year')";
  3. ?>

zamień na
  1. <?php
  2. $query = "INSERT INTO `plyty` VALUES (NULL, '".$title."', '".$author."', '".$edition."', '".$format."', '".$year"')";
  3. ?>


i tak dalej...


nie działa...
teraz to jest pustka (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) (IMG:http://forum.php.pl/style_emoticons/default/worriedsmiley.gif)
z resztą wydaje mi się, że to jest błąd (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) taki zapis... mogę się mylić, bo php i mysql uczę się dość krótko (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)


Udało mi się poprawnie zainstalować na localhoscie ten pakiet DB i już jest niby dobrze, ale gdy zatwierdzam to :

Nie mozna nawiazac polaczenia z baza danych:
connect failed


Czyli zapewne błąd jest w tym kodzie i raczej nie chodzi tu o ten cudzysłów...

Ten post edytował beka 2.08.2009, 20:05:51
Go to the top of the page
+Quote Post
marian2299
post
Post #8





Grupa: Zarejestrowani
Postów: 272
Pomógł: 9
Dołączył: 6.06.2009

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


Połączenie nieudane. Pokaż jak łączysz się z bazą, tam masz błąd.
Go to the top of the page
+Quote Post
beka
post
Post #9





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 2.08.2009

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


plik db_login.php
  1. <?php
  2. $db_host='localhost';
  3. $db_database='winyle';
  4. $db_username='root';
  5. $db_password='haslo';
  6. ?>


ot i całe logowanie... wątpię by tu był jakikolwiek błąd (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) z resztą w innym pliku, który ma za zadanie np. tylko wyświetlać zawartość bazy danych (też korzysta z tego db-login.) jest wszystko dobrze.



DB.php jak wspominałem to pakiet PEAR'a ...

Ten post edytował beka 2.08.2009, 20:18:35
Go to the top of the page
+Quote Post
Pawel_W
post
Post #10





Grupa: Zarejestrowani
Postów: 1 675
Pomógł: 286
Dołączył: 15.06.2009
Skąd: Wieliczka

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


@up
Ameryki to ty nie odkryłeś...

  1. <?php
  2. $connection =
  3. DB::connect("mysql://$db_username:$db_password@$db_host/$db_database");
  4. ?>

tak się łączy, a błąd mu wyskakuje ponieważ nie ma tych dwóch plików z klasą

co do tego:
Cytat
Kod PHP1
2
3
4

<?php
$query = "INSERT INTO `plyty` VALUES (NULL, '$title', '$author', '$edition', '$format', '$year')";
?>

zamień na
Kod PHP1
2
3
4

<?php
$query = "INSERT INTO `plyty` VALUES (NULL, '".$title."', '".$author."', '".$edition."', '".$format."', '".$year"')";
?>


i tak dalej...

to jak nie wiesz na pewno to zasugeruj mu tylko aby zmienił, a nie każ mu zmieniać, bo takie rozwiązanie nic nie daje, radzę poczytać o różnicach między ' a "

Ten post edytował Pawel_W 2.08.2009, 20:17:24
Go to the top of the page
+Quote Post
beka
post
Post #11





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 2.08.2009

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


Tak tak cokolwiek (czyli raport, że nie można się połączyć) wyświetla na localhoście, na którym de facto mogę mieć źle skonfigurowany Apache itd. (choć już powinno być dobrze...), ale jak wytłumaczyć to, że na serwerze w sieci, który ma wszystko co powinien mieć... nic się nie wyświetla po kliknięciu Zatwierdź (IMG:http://forum.php.pl/style_emoticons/default/blinksmiley.gif) pusto, nawet komunikatu nie ma...
Go to the top of the page
+Quote Post
Pawel_W
post
Post #12





Grupa: Zarejestrowani
Postów: 1 675
Pomógł: 286
Dołączył: 15.06.2009
Skąd: Wieliczka

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


bo na niektórych serwerach może być wyłączony error_reporting (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
beka
post
Post #13





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 2.08.2009

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


To co mam począć (IMG:http://forum.php.pl/style_emoticons/default/sadsmiley02.gif) da się to jakoś rozwiązać (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) tudzież napisać inaczej (IMG:http://forum.php.pl/style_emoticons/default/blinksmiley.gif) (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
Go to the top of the page
+Quote Post
Pawel_W
post
Post #14





Grupa: Zarejestrowani
Postów: 1 675
Pomógł: 286
Dołączył: 15.06.2009
Skąd: Wieliczka

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


error_reporting(E_ALL);

nie jestem pewien czy poprawnie
Go to the top of the page
+Quote Post
beka
post
Post #15





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 2.08.2009

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


Chodziło mi raczej o działanie skryptu (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ... może napisać bez korzystania z tego DB.php (PEAR'u) (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) Ale jak (IMG:http://forum.php.pl/style_emoticons/default/worriedsmiley.gif) ? To mój pierwszy jako taki "projekt" (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
Pawel_W
post
Post #16





Grupa: Zarejestrowani
Postów: 1 675
Pomógł: 286
Dołączył: 15.06.2009
Skąd: Wieliczka

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


  1. <?php
  2. function insert_db($title, $author, $edition, $format, $year){
  3. $sql = mysql_connect("host", "user", "password") or die('Nie mozna nawiazac polaczenia z baza danych.'.mysql_error());
  4. mysql_select_db("nazwa_bazy") or die('Nie mozna wybrac bazy danych.'.mysql_error());
  5. $title = stripslashes($title);
  6. $author = stripslashes($author);
  7. $edition = stripslashes($edition);
  8. $format = stripslashes($format);
  9. $year = stripslashes($year);
  10. }
  11.  
  12. $title = mysql_real_escape_string($title);
  13. $author = mysql_real_escape_string($author);
  14. $edition = mysql_real_escape_string($edition);
  15. $format = mysql_real_escape_string($format);
  16. $year = mysql_real_escape_string($year);
  17.  
  18. $query = "INSERT INTO `plyty` VALUES (NULL, '$title', '$author', '$edition', '$format', '$year')";
  19. $result = mysql_query($query) or die('Nie mozna wykonac zapytania.'.mysql_error());
  20. echo 'Dane zostały wstawione pomyślnie.<br />';
  21. $query = 'SELECT * FROM `plyty`';
  22. $result = mysql_query($query) or die('Nie mozna wykonac zapytania.'.mysql_error());
  23. echo 'Dane zostały pobrane pomyślnie.<br />';
  24. echo '<table border="1">';
  25. echo '<tr><th>Tytuł</th><th>Autor</th><th>Wydanie</th><th>Format</th><th>Rok</th></tr>';
  26. while ($result_row = mysql_fetch_array($result)) {
  27. echo '<tr><td>';
  28. echo $result_row['tytul'] .'</td><td>';
  29. echo $result_row['autor'] .'</td><td>';
  30. echo $result_row['wydanie'] .'</td><td>';
  31. echo $result_row['format'] .'</td><td>';
  32. echo $result_row['rok'] .'</td></tr>';
  33. }
  34. echo '</table>';
  35. }
  36. ?>
  37. <html>
  38. <head>
  39. <title>Wstawianie danych</title>
  40. </head>
  41. <body>
  42. <?php
  43. $title = htmlentities($_GET['tytul']);
  44. $author = htmlentities($_GET['autor']);
  45. $edition = htmlentities($_GET['wydanie']);
  46. $format = htmlentities($_GET['format']);
  47. $year = htmlentities($_GET['rok']);
  48. if (($title != NULL ) && ($author != NULL ) && ($edition != NULL ) && ($format != NULL ) && ($year != NULL)){
  49. insert_db($title,$author,$edition,$format,$year);
  50. }
  51. else {
  52. <h1>Wprowadź nową pozycję:</h1>
  53. <form action="'.$_SERVER['PHP_SELF'].'" method="GET">
  54. <table><tr>
  55. <td><label>Tytuł:<input type="text" name="tytul" id="tytul" /></label></td>
  56. <td><label>Autor:<input type="text" name="autor" id="autor" /></label></td>
  57. <td><label>Wydanie:<input type="text" name="wydanie" id="wydanie" /></label></td>
  58. <td><label>Format:<input type="text" name="format" id="format" /></label></td>
  59. <td><label>Rok:<input type="text" name="rok" id="rok" /></label></td><br />
  60. <input type="submit" value="Zatwierdź" />
  61. </tr></table>
  62. </form>';
  63. }
  64. ?>
  65. </body>
  66. </html>

może zadziała (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
Pawel_W
post
Post #17





Grupa: Zarejestrowani
Postów: 1 675
Pomógł: 286
Dołączył: 15.06.2009
Skąd: Wieliczka

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


no bo musisz zmienić host, user, password i nazwa_bazy danych (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

$sql = mysql_connect("host", "user", "password") or die('Nie mozna nawiazac polaczenia z baza danych.'.mysql_error());
mysql_select_db("nazwa_bazy")
Go to the top of the page
+Quote Post
beka
post
Post #18





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 2.08.2009

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


Eee tak tak zamuliłem (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Działa (IMG:http://forum.php.pl/style_emoticons/default/exclamation.gif) ! Dziękuje bardzoo (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) )



edit.

Ehh, ale tylko na localhoście (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) ... na serwerze :

Nie mozna nawiazac polaczenia z baza danych.Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

a

Ten post edytował beka 2.08.2009, 20:55:31
Go to the top of the page
+Quote Post
Pawel_W
post
Post #19





Grupa: Zarejestrowani
Postów: 1 675
Pomógł: 286
Dołączył: 15.06.2009
Skąd: Wieliczka

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


no a dobry host podałeś? bo jezeli wrzucasz na serwer to nie mozesz podac localhost, chyba ze masz wewnetrzna baze danych
Go to the top of the page
+Quote Post
marian2299
post
Post #20





Grupa: Zarejestrowani
Postów: 272
Pomógł: 9
Dołączył: 6.06.2009

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


http://forum.php.pl/index.php?showtopic=44...t=0&start=0

Tu jest odpowiedź.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 12.03.2026 - 17:48