0

$ username変数を現在のセッションユーザー名(ログインしているアカウントのユーザー名)と一致させようとしています。

次のコードを使用していますが、解析エラーが発生します:構文エラー、予期しないT_ENCAPSED_AND_WHITESPACE、T_STRINGまたはT_VARIABLEまたはT_NUM_STRINGが必要です

$result = mysql_query("SELECT * FROM settings WHERE $username = $_SESSION['username']")
4

1 に答える 1

2

私がここで見る3つの非常に明白なエラー:

$usernameクエリでは、PHPによってPHPの$username変数の値が評価されますが、これは明らかに持っていないため、「」と評価されます。

$_SESSION['username']明らかに文字列値であるため、引用符で囲む必要があります(""または'')。

さらに、これを次のように書き直します。

$result = mysql_query("SELECT * FROM settings WHERE username = '" . $_SESSION['username'] . "'");

そうは言っても、最初にサニタイズせずに、PHPからクエリに直接変数を渡したくはありません。それは注射の楽園です。

[編集]

また、エラーメッセージが表示される場合、エラーはおそらく他の場所にあります。あなたが本当に;あなたの行の終わりにを逃していない限り。また、そのエラーにより、解釈エラーが発生した正確なPHP行番号がわかります。

于 2012-08-11T23:00:10.870 に答える