2016-05-17 4 views
0

を「非オブジェクトのプロパティを取得しようとすると」返す私は古いPHPスクリプトが動作するように取得しようとしていますが、私はこの通知を得続ける:するmysql_queryは通知が

お知らせ:非のプロパティを取得しようとすると、通知は、このコードの最後の行に基づいているに...

オブジェクト:

$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) { 

私も、私は _queをmysqlのを使用してみましたryとmysql 私は _fetch_objectしかし、それは変更を行いません。

どのように私はこれを解決できますか?

+0

は、もしC DID読みも読むべきPDOmysqli_に移動するかを検討している場合'mysqli_'を使って試したときにデータベース接続を変更します – RiggsFolly

+0

このメッセージは通常、クエリが失敗したときにこのタイプのコードで発生します。 **そのエラーには行番号が関連付けられていますか?** – RiggsFolly

+0

クエリで結果が見つかりましたか? – carmel

答えて

0

$row_check->ses_useridを使用する前に、$ row_checkがtrueまたはfalseであるかどうかを確認してください。

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

    } 
} 
+0

$ row_checkがfalseですが、なぜ私は理解できません... –

1

このエラーは、通常、クエリが失敗したことを意味します。

あなたは、二重引用符で囲まれた文字列内の変数展開の{$_COOKIE['fe_typo_user']}形態のいずれかを使用し、あるいはこれも動作する場合も、文字列の連結が簡単になることができ、このように行くようにあなたがエラーをチェックする必要があります$_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); 

このようにして、SQLで小さな間違いをすると、そのことについて直接聞かれ、何が間違っていたのか疑問に思う必要はありません。

使用the mysql_ database extensionいけないしてください、それ は(PHP7に永遠になくなって)は推奨されません 特別にあなただけのPHPを学習している場合は、PDOデータベースの拡張を学び、あなたのエネルギーを費やしています。 Start here

あなたがデータを使用している場合$_POSTまたは$_GETまたは$_COOKIE

からもらった特別 SQL Injection Attackを避けるために、あなたはまた、パラメータ化クエリを使用する必要があります( mysqli_PDOデータベースの拡張機能で使用できるのではなく、昔は mysql_拡張子を非推奨)

あなたはこのCan I mix MySQL APIs in PHP?

+0

ありがとうございます、私は 'mysqli_query($ connection、$ query)'で試してみました。わたしにはできる。 –

関連する問題