<?php class Language { private $name = 'english'; private $sname = 'en'; private $fname = 'english.lng'; private $id = 0; function __construct() { { $lang = $m[1]; } else { } // po tym zabiegu zmienna $lang zawiera 'en', gdy wchodzę przez en.localhost, a pl, gdy wchodzę przez pl.localhost if($result = $GLOBALS['fmw']['db']->query("SELECT * FROM languages WHERE sname = '".$GLOBALS['fmw']['db']->escape_string($lang)."'") && $result->num_rows == 1) { $row = $result->fetch_assoc(); $this->name = $row['name']; $this->sname = $row['sname']; $this->fname = $row['fname']; $this->id = $row['id']; } else if($result = $GLOBALS['fmw']['db']->query("SELECT * FROM languages WHERE sname = '".$this->sname."'") && $result->num_rows == 1) { $row = $result->fetch_assoc(); $this->name = $row['name']; $this->sname = $row['sname']; $this->fname = $row['fname']; $this->id = $row['id']; } else { } { } else { } } public function getLangID() { return $this->id; } } ?>
Za każdym razem, gdy wykonuję ten skrypt, wywala mi error Can't find default language. W bazie danych mam jedno pole:

więc warunek
<?php else if($result = $GLOBALS['fmw']['db']->query("SELECT * FROM languages WHERE sname = '".$this->sname."'") && $result->num_rows == 1) ?>
powinien być spełniony. Co może być nie tak? Dodam, że $GLOBALS['fmw']['db']->error nie ma żadnej wartości.
Dodam także, że num_rows = 0 w obu warunkach. :X Jeśli z poziomu phpmyadmin wywołam:
SELECT * FROM languages WHERE sname='en'
wszystko jest ok, zwraca jeden wynik.
Oczywiście korzystam z mysqli.