Ich habe versucht, das Google Login mit PHP und MongoDB zu implementieren. Immer wenn ich versuche, $manager->executeQuery
auszuführen, erhalte ich Fatal Fehler, der besagt, dass es nicht ausgeführt werden kann.Schwerwiegender Fehler: Aufruf einer Memberfunktion executeQuery() auf einem Nicht-Objekt
$cursor = $manager->executeQuery($this->dbName.'.'.$this->userTbl, $prevQuery);
Ich habe keine Ideen, wie Sie diese Programme debuggen. Hier ist mein Codebeispiel:
class User {
private $dbHost = "localhost:27017";
private $dbName = "Demo";
private $userTbl = 'google_users';
function __construct(){
//Connecting to MongoDB
try {
$manager = new MongoDB\Driver\Manager('mongodb://'. $this->dbHost);
}
catch (MongoDB\Driver\Exception\Exception $e) {
echo $e->getMessage(), "\n";
}
}
function checkUser($userData = array()){
if(!empty($userData)){
//Check whether user data already exists in database
$filter = ['oauth_uid' => $userData['oauth_uid'], 'oauth_provider' => $userData['oauth_provider']];
$prevQuery = new MongoDB\Driver\Query($filter);
$user_count=0;
try {
$cursor = $manager->executeQuery($this->dbName.'.'.$this->userTbl, $prevQuery);
// Iterate over all matched documents
foreach ($cursor as $document) {
$user_count++; //will return 0 if user doesn't exist
}
} catch (MongoDB\Driver\Exception\Exception $e) {
echo $e->getMessage(), "\n";
}
}
}
}
Alle Vorschläge würden geschätzt.
Wo '$ Manager' ist in diesem Verfahren definiert verwenden kann? Es sieht nicht so aus – RiggsFolly