Ich schreibe eine Funktion, um nach Datensätzen in meiner Datenbank vor der Ausführung von irgendetwas zu überprüfen, und ich bekomme den Fehler Call to a member function prepare()
, die ich nicht ganz verstehe. Ich habe jetzt schon seit geraumer Zeit struggeling, und ich würde wirklich appriciate sollte etwas HilfeDie Logik hinter "Call to a Member Funktion prepare()"
Das Problem mit den 19
<?php
$dsn = "xxx"; // Database Source Name
$username="xxx"; // User with acress to database. Root is MySQL admin.
$password="xxx"; //The user password.
try {
$conn = new PDO($dsn, $username, $password);
$conn ->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
echo "Connection failed: ".$e->getMessage();
}
//------------------------ Does the category already exist? -------------------------
function checkuser($fbid,$fbfname,$fblname,$femail) {
$sql="SELECT COUNT(*) AS subjectcount FROM Users WHERE Fuid=:Fuid";
try {
$stmt = $conn->prepare($sql);
$stmt->bindValue(":Fuid",$_SESSION['FBID'], PDO::PARAM_INT);
$stmt->execute();
$row = $stmt->fetch(PDO::FETCH_ASSOC);
$subjectcount=$row["subjectcount"];
} catch (PDOException $e) {
echo "Server Error - try again!".$e->getMessage();
}
//------------------------ If it dosn't, insert it -------------------------
if ($subjectcount==0) {
in Linie prepare()
sein, und ich habe eine harte Zeit Debugging mit seit Ich verstehe die Ursache dieses Fehlers nicht ganz.
ich meinen Code zu
aktualisiert<?php
$dsn = "xxx"; // Database Source Name
$username="xxx"; // User with acress to database. Root is MySQL admin.
$password="xxx"; //The user password.
try {
$conn = new PDO($dsn, $username, $password);
$conn ->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
echo "Connection failed: ".$e->getMessage();
}
//------------------------ Does the category already exist? -------------------------
function checkuser($fbid,$fbfname,$fblname,$femail) {
global $conn;
$sql="SELECT COUNT(*) AS subjectcount FROM Users WHERE Fuid=:Fuid";
try {
$stmt = $conn->prepare($sql);
$stmt->bindValue(":Fuid",$_SESSION['FBID'], PDO::PARAM_INT);
$stmt->execute();
$row = $stmt->fetch(PDO::FETCH_ASSOC);
$subjectcount=$row["subjectcount"];
} catch (PDOException $e) {
echo "Server Error - try again!".$e->getMessage();
exit;
}
//------------------------ If it dosn't, insert it -------------------------
if ($subjectcount==0) {
Ist das die volle Fehlermeldung? –
It's Fatal error: Aufruf an eine Member-Funktion Prepare() auf Null in /var/www/domain/public_html/functions.php in Zeile 19 – frisk0
Ich vermutete, und wenn Sie Fehler Berichterstattung festgelegt, um alle Fehler einschließlich Benachrichtigungen zu melden, dann hättest du den Fehler gesehen, der dir sagt, dass "conn" ebenfalls undefiniert ist. Siehe meine Antwort unten. – CherryDT