Я новичок в php и у меня проблема: Код (Text): function Authorize($uLogin, $uPass, $sessId){ global $result; $query = sprintf("SELECT id, login, password, name FROM users WHERE login=%s AND password=%s ", $uLogin, $uPass); if ($result = $mysqli->query($query)) { //проблема здесь while ($row = $result->fetch_assoc()) { $array[]=$row; } if ($uLogin == $row['login'] && md5(md5($uPass).md5('php')) == $row['password']) { $query = sprintf("INSERT INTO `auth` VALUES((SELECT id FROM `users` WHERE login='".$uLogin."'),%s,1);", $sessid); if ($result = $mysqli->query($query)) return true; return false; } $result->close(); } $mysqli->close(); } Fatal error: Call to a member function query() on a non-object in new.php on line 26 искал в Интернете, но толком так и не понял, в чем же проблема и как её исправить. понял только, что нужно чтобы возвращался объект, но он не возвращается. заранее благодарен.
почитайте про область видимости переменных(в функции нету $mysqli) далее нужно немного почитать про конкатенцию в пхп и про борьбу с SqlInjecion. и забыть про sprintf() далее можно про паттерны почитать, впринципе, на вашем уровне можно разобраться про Singleton про SeviceLocator про Dependency Injection помогут вам красиво решить проблему с областью видимости =)
если бы я мог разобраться лишь прочитав документацию, я бы, наверное, не просил помощи. более того, все, что делаю последние 4 дня, так это читаю. по теме: объявил $mysqli = new mysqli($dbHost, $dbUser, $dbPass, $dbName); появилась другая проблема - не получаю никаких данных от SQL. var_dump($array); показывает NULL думал, что-то не так с запросом, но не в нем дело.
почти уверен что проблема опять в области видимости переменных, только уже других. а посему, если бы вы читали документацию то её небыло бы. ключевые слова для гуглени я привёл. если сложно, начните с более простых вещей