Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z zapisem w bazie przez skrypt
Forum PHP.pl > Forum > Bazy danych > MySQL
paul14x
Witam

dane do bazy:
  1. $con = @mysql_connect( '127.0.0.1','root','vertrigo');
  2. $select = @mysql_selectdb("tasker");


i teraz w klasie jedna funkcja działa prawidłowo

Wyświetlanie zawartości:
  1. public function get_departaments(){
  2. require_once ("templates/connection.inc.php");
  3. $query = "SELECT * FROM departament";
  4. $result = mysql_query($query);
  5. $c = mysql_num_rows($result);
  6.  
  7. for($i=0; $i<$c; $i++){
  8. $nazwa = mysql_result($result, $i, "name");
  9. $id = mysql_result($result, $i, "id_departament");
  10. $departaments[$id] = $nazwa;
  11. }
  12. mysql_close($con);
  13. return $departaments;
  14. }



natomiast druga:


  1. public function departament_update($id, $nazwa){
  2. require_once ("templates/connection.inc.php");
  3. $query = "UPDATE departament SET name='".$nazwa."' WHERE id_departament=".$id;
  4.  
  5. $result = mysql_query($query)
  6. or die('Błąd w zapytaniu:<br>'.$query.'<br> Komunikat: '.mysql_error().'<br>');
  7. echo $query."<br>";
  8.  
  9. mysql_close($con);
  10. if($result) return 1;
  11. else return -1;
  12. }


nie zapisuje mi danych do bazy i generuje komunikaty:
Warning: mysql_query() [function.mysql-query]: Access denied for user 'ODBC'@'localhost' (using password: NO) in P:\Program Files\VertrigoServ\www\Tasker\classes\db_manager.php on line 78

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in P:\Program Files\VertrigoServ\www\Tasker\classes\db_manager.php on line 78


Gdy wykonuję zapytanie generowane przez departament_update() z dowolnego klienta to wstawia mi bez problemu. Skąd taki kumunikat przy próbie zapisu w bazie przez skrypt?
Mchl
Zamknąłeś połączenie, to mysql_query próbuje nawiązać kolejne z domyślnymi parametrami.
paul14x
Rzeczywiście. Pierwsze kroki programowania obiektowego w PHP i zamykałem w każdej metodzie.
Wielkie dzięki.
Temat zamknięty.
Mchl
Skoro pierwsze kroki, to od razu Ci podpowiem, że lepiej byłoby nawiązywać jedno połączenie przy starcie aplikacji, a potem przy instantacji obiektów przekazywać je do nich. inlcude/require w każdej metodzie to kiepski design.

Nie mówiąc o tym, że wygodniej byłoby Ci korzystać z ext/mysqli zamiast ext/mysql.
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.