Код (Text): <?PHP $usid = $_SESSION["id"]; var_dump($usid); $user = $_SESSION["user"]; var_dump($user); $password= $_SESSION["password"]; var_dump($password); $usid = $_SESSION["user_id"]; $db->Query("SELECT * FROM db_users_a WHERE id = '$usid'"); $db->Query("SELECT * FROM db_users_a WHERE user = '$user'"); $db->Query("SELECT * FROM db_users_a WHERE password = '$password'"); ?> хочу вывести данные которые находятся в базе данных,но вместо их выползает NULL,кроме $user выводит правильное значение которое в базе данных,как сделать чтоб все остальное правильно выводил? каким запросом?
если честно,то я не знаю<что это такое) Код (Text): public function __construct($host, $user, $pass, $base){ $this->Connect($host, $user, $pass, $base); $this->query("SET NAMES 'cp1251'"); $this->query("SET CHARACTER SET 'cp1251'"); $this->db->Query } это вот отсюда пошло) я по образцу делал как в другом файле пхп
Андрей12 ну прочитай книги свежие по PHP, MySQL. SELECT * FROM db_users_a WHERE id = '$usid' вернёт все столбцы из таблицы db_users_a у столбца id = '$usid' по идее запрос уже вернёт user, password если они там есть
то есть ты не умеешь отлаживать код и плюс используешь код который не понимаешь... я в восторге. "что это такое" это конструктор некоторого класса который очевидно работает с мускулом и скорее всего с устаревшим расширением. и я бы дальше продолжил объяснение но конструкция $this->db->Query это просто деление на ноль. потому что после нее нет ; значит это должно вызывать ошибку синтаксиса.
я с другого файла это выдернул и забыл поставить ; а так там есть) просто показать) Код (Text): /*======================================================================*\ Function: __construct Descriiption: Выполняется при создании экземпляра класса \*======================================================================*/ public function __construct($host, $user, $pass, $base){ $this->Connect($host, $user, $pass, $base); $this->query("SET NAMES 'cp1251'"); $this->query("SET CHARACTER SET 'cp1251'"); } /*======================================================================*\ Function: Stats Descriiption: Возвращает статистику по запросам \*======================================================================*/ public function Stats(){ $sD = array(); $sD["TimeQuery"] = $this->TimeQuery; $sD["MaxExTime"] = $this->MaxExTime; $sD["ListQueryes"] = $this->ListQueryes; $sD["HardQuery"] = $this->HardQuery; $sD["Queryes"] = $this->Queryes; $sD["mysql_result"] = $this->mysql_result; return $sD; } /*======================================================================*\ Function: GetError Descriiption: Выводит описание ошибки в поток \*======================================================================*/ private function GetError($TextError){ $this->MySQLErrors[] = $TextError; die($TextError); } /*======================================================================*\ Function: query Descriiption: Запрос \*======================================================================*/ public function query($query, $FreeMemory = false, $write_last = true){ $TimeA = $this->get_time(); $xxt_res = mysqli_query($this->con, $query) or $this->GetError(mysqli_error($this->con)); if($write_last) $this->LastQuery = $xxt_res; $TimeB = $this->get_time() - $TimeA; $this->TimeQuery += $TimeB; if($TimeB > $this->MaxExTime){$this->HardQuery = $query; $this->MaxExTime = $TimeB;} if( empty($this->ListQueryes) ) $this->ListQueryes = $query; else $this->ListQueryes .= "\n".$query; $this->Queryes++; if(!$FreeMemory){ return $this->LastQuery; }else return $this->FreeMemory(); } /*======================================================================*\ Function: Connect Descriiption: Соединяется с ДБ \*======================================================================*/ private function Connect($host, $user, $pass, $base){ $this->con = @mysqli_connect($host, $user, $pass, $base) or $this->GetError(mysqli_connect_error()); } /*======================================================================*\ Function: MultiQuery Descriiption: Множественный запрос \*======================================================================*/ function MultiQuery($query){ $TimeA = $this->get_time(); mysqli_multi_query($this->con, $query) or $this->GetError(mysqli_connect_error()); $TimeB = $this->get_time() - $TimeA; $ret_data = array(); $counter = 0; do{ if ($result = mysqli_store_result($this->con)) { while ($row = mysqli_fetch_array($result)) { $ret_data[$counter][] = $row; } mysqli_free_result($result); $counter++; } }while(mysqli_next_result($this->con)); $this->TimeQuery += $TimeB; if($TimeB > $this->MaxExTime){$this->HardQuery = $query; $this->MaxExTime = $TimeB;} if( empty($this->ListQueryes) ) $this->ListQueryes = $query; else $this->ListQueryes .= "\n".$query; $this->Queryes++; return $ret_data; } что можешь сказать по этому куску кода)? устарел? или мало кода)? наверное лучше научиться самому по новому написать и без Query) Добавлено спустя 3 минуты 8 секунд: я читал и не много понял,но у меня почему то не много по другому чем в книге<если я напишу query_mysqli то он ошибку выведет параметр типо не задан) вот попытался так попробовать. password есть в базе данных,как и user,но password не выдается,а user выдается)
ну мягко говоря это говнокод. враппер работы с субд пишется для удобства а данный класс практически каждым своим методом докидывает неудобств. красивее оригинальный функциональный апи тогда юзать чем такой враппер. впрочем по стилю это попов и для него это наверное шедевр
do...while однострочные if-ы отсутствие автоматизации Автор, не равняйся на этот код. Он плохой. Он не добавляет ничего, кроме оверхедов и неинтуитивного ада. Если ты взял встроенную функцию, обернул ее в свою и натыкал таймеров вокруг да около, просто проксируя в нее вызов, это не путь джедая. Путь джедая это когда ты посылаешь запрос одной-единственной командой. А вся остальная магия, типа открытия и обслуживания коннектов, получения ответа, сбор ошибок, разбор мультизапросов, происходит под капотом и тебя, в общем-то уже не интересует. Один раз сделал и готово. В одно действие получил результат. А тут руками коннект открой, руками запрос пошли, руками результат вытащи...где-то я это видел. Ах да.