2016-05-17 8 views
0

Ich versuche, ein altes PHP-Skript zu arbeiten, aber ich erhalte diese Mitteilung:mysql_query kehrt der Hinweis „Eigentum von Nicht-Objekt erhalten Trying“

Hinweis: Der Versuch, Eigentum nicht zu bekommen Objekt in ...

die Bekanntmachung in der letzten Zeile dieses Codes basiert:

$result_id_check = mysql_query("select ses_userid from fe_sessions where ses_id = '".$_COOKIE['fe_typo_user']."';"); 
$row_check = mysql_fetch_object($result_id_check); 

if ($row_check->ses_userid) { 

ich habe auch versucht mysql mit i _que ry und mysql i _fetch_object, aber das wird keine Änderungen vornehmen.

Irgendwelche Ideen, wie ich das lösen kann?

+0

lasen lesen sollte Ändern Sie die Datenbankverbindung, wenn Sie versuchen, mysqli_ zu verwenden – RiggsFolly

+0

Diese Nachricht wird normalerweise in dieser Art von Code ausgeführt, wenn die Abfrage fehlschlägt. ** Ist diesem Fehler eine Zeilennummer zugeordnet? ** – RiggsFolly

+0

Hat die Abfrage Ergebnisse gefunden? – carmel

Antwort

0

Vor der Verwendung von $row_check->ses_userid nur prüfen, ob $ row_check wahr oder falsch ist.

if ($row_check) { 
    if ($row_check->ses_userid) { 

    } 
} 
+0

$ row_check ist falsch, aber ich kann nicht verstehen, warum ... –

1

Dieser Fehler bedeutet normalerweise, dass die Abfrage fehlgeschlagen ist.

Sie auf Fehler überprüft werden sollen, wie Sie weitergehen, auch die String-Verkettung einfacher gemacht werden kann, wenn Sie entweder die {$_COOKIE['fe_typo_user']} Form variabler Expansion innerhalb eines doppelten Anführungszeichen verwenden, oder alternativ das funktioniert auch $_COOKIE[fe_typo_user]

$sql = "select ses_userid 
     from fe_sessions 
     where ses_id = '{$_COOKIE['fe_typo_user']}'" 

$result_id_check = mysql_query($sql); 

if ($result_id_check === false) { 
    echo mysql_error(); 
    echo 'Bad SQL : ' . $sql; 
    exit; 
} 

$row_check = mysql_fetch_object($result_id_check); 

diese Weise, wenn Sie kleine Fehler mit SQL machen, erhalten Sie über sie direkt gesagt und Sie nicht wundern, was ja schief gelaufen.

Bitte nicht verwenden the mysql_ database extension, es veraltet ist (immer in PHP7 gegangen) Speziell, wenn Sie nur PHP lernen sind, verbringen Sie Ihre Energien die Erweiterungen PDO Datenbank zu lernen. Start here

Sie sollten auch parametrisierte Abfragen werden (in den mysqli_ und PDO Datenbank-Erweiterungen, aber nicht die alte veraltet mysql_ Erweiterung) SQL Injection Attack Speziell zu vermeiden, wenn Sie Daten aus $_POST oder $_GET oder $_COOKIE

verwenden bekam

Wenn Sie erwägen, zu mysqli_ bewegen oder PDO Sie dies auch Sie c Can I mix MySQL APIs in PHP?

+0

Vielen Dank, ich habe es versucht mit 'mysqli_query ($ verbindung, $ query)' und Für mich geht das. –

Verwandte Themen