Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]mysqli wywala Undefined variable: db
Forum PHP.pl > Forum > Przedszkole
casperii
Panowie, próbuje rozgryźć mysqli , o to kod:

index.php:

  1. ini_set('display_errors', 1);
  2. header('Content-type: text/html; charset=utf-8');
  3. require_once("./db.php");
  4. $db = new mysqli($dbhost, $dbname, $dbpass, $dbuname);
  5. $db -> query("SET NAMES 'utf8'");
  6. include('auth.php');
  7. if($db->connect_error) {
  8. die('Nie można się połączyć z bazą ('.$db->connect_errno.') '. $db->connect_error);
  9. if (mysqli_connect_error()){
  10. die('Nie można się połączyć z bazą (' . mysqli_connect_errno() . ') '
  11. . mysqli_connect_error());
  12. }
  13. }else{
  14.  
  15.  
  16. //dalszy kod
  17.  
  18. }
  19.  
  20. ?>



oraz kod auth.php

  1. function zalogowany(){
  2. $query = $db->query("SELECT * FROM `users` WHERE `login` = '".$login."'");
  3. }


Niestety ale powyższy kod wywala mi:
Notice: Undefined variable: db in... auth.php
Fatal error: Call to a member function query() on a non-object in .. auth.php

Co robię źle panowie ?
markuz
Zmienna $db nie jest widoczna w funkcji zaloguj, musisz ją tam przekazać np.
  1. function zalogowany($db, $login) {
  2. $query = $db->query("SELECT * FROM `users` WHERE `login` = '".$login."'");
  3. }
casperii
@markuz wytłumacz mi proszę, jak może nie być widoczna? skoro w index.php wstawiam auth.php , przecież zmienną $db powinien pobrać z index.php.
Nawet jak wstawie w auth.php:

  1. require_once("./db.php");
  2. $db = new mysqli($dbhost, $dbname, $dbpass, $dbuname);
  3. $db -> query("SET NAMES 'utf8'");


to nadal mam ten sam błąd. Twoja rada żeby wstawić w fukcje zalogowany zmienną $db, wywala bład:

Warning: Missing argument 1 for zalogowany()
viking
W funkcji zmienna poza zasięgu nie będzie widoczna chyba że przekażesz zalogowany($db){}

http://php.net/manual/en/language.variables.scope.php
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.