0

$ addを値(たとえば30)として手動で宣言すると、クエリが正常に実行されます。これをuser_idセッションに設定しようとすると、クエリは失敗します。

// $add = 30;
// The line above works
$add = mysql_real_escape_string($_SESSION['user_id']);
$query = "UPDATE mytable SET act=0, add=$add WHERE id=$selected_user";

私が間違っているアイデア。

4

3 に答える 3

1

$_SESSIONセッションを使用する場合は、次のような使用法の前に常にこれを指定する必要があります。

session_start();
//now you are able to use this
$_SESSION['user_id'] = 30;

一方、私は以前と同じ問題を抱えていました。あなたがする必要があるの$_SESSION['user_id']は、変数にを入れることです。そうすれば、問題なくそれを渡すことができmysql_real_escape_stringます。

$id = $_SESSION['user_id'];
//now use this:
$add = mysql_real_escape_string($id);

お役に立てれば。

于 2012-04-18T21:21:53.573 に答える
1

Q:私が間違っているアイデアはありますか?

A:はい。セッションは空です。

提案:

  1. 「エコー」を実行して、$ _ SESSION ['user_id']が空であることを確認します(99%確実になります)

  2. 実際にセッションを設定していることを確認してください(例: "session_start()")

  3. 「session_start()」がタグの前にあることを確認してください。<html>

  4. $_SESSION['user_id']を設定するコードをデバッグします

これは良いリンクです:

http://www.w3schools.com/php/php_sessions.asp

于 2012-04-18T21:24:19.403 に答える
0

session_start();スクリプトの先頭を忘れてしまったことはほぼ間違いありません。セッション変数をエコーし​​ようとしない場合、何も返されない場合は、何も設定されていません。

于 2012-04-18T21:26:20.543 に答える