2

以下のコードでエラーが発生しています。構文が間違っている可能性があり、どこにあるのかわかりません。エラー: near '(``last_online``) VALUE ('now()) WHERE (users.id = 55)' at line 1

PHP コード:

   <?php 
include 'dbc.php';
session_start();
$user_ip = $_SERVER['REMOTE_ADDR'];

$id = $_SESSION['user_id'];

$sql_insert1 = "UPDATE `users` SET (`last_online`)
            VALUES
            ('now()) WHERE (users.id = $id)";

mysql_query($sql_insert1) or die("Insertion Failed:" . mysql_error());
$sql_insert2 = "UPDATE `users` SET (`users_ip`)
            VALUES
            ('$user_ip') WHERE (users.id = $id)";

mysql_query($sql_insert2) or die("Insertion Failed:" . mysql_error());
4

1 に答える 1

5

UPDATEステートメントの構文は次のとおりです。

UPDATE table
SET col_name1={expr1|DEFAULT} [, col_name2={expr2|DEFAULT}] ...
[WHERE where_condition]

したがって、1つのステートメントで両方のフィールドを更新するには、代わりに次を使用する必要があります。

UPDATE `users` 
SET `last_online` = now(),
    `users_ip` = '$user_ip'
WHERE (users.id = $id)

VALUESキーワードはINSERTステートメントで使用されます。

于 2012-09-03T18:27:13.640 に答える