Mysql pdo exec update语句出错?

Mysql pdo exec update语句出错?,mysql,pdo,Mysql,Pdo,正在获取以下内容的错误。。。在非pdo格式下工作良好: 分析错误:语法错误,意外的“”(T_封装的_和_空格),需要标识符(T_字符串)或变量(T_变量)或数字(T_NUM_字符串) //在数据库中更新用户的当前ip和当前登录日期(无需用户输入) $db->exec(“更新测试用户设置currIP=$”服务器['REMOTE\u ADDR'],dtCurrLogin=UTC\u TIMESTAMP(),其中user=$user”); 将数组索引调用更改为: $db->exec("UPDAT

正在获取以下内容的错误。。。在非pdo格式下工作良好:

分析错误:语法错误,意外的“”(T_封装的_和_空格),需要标识符(T_字符串)或变量(T_变量)或数字(T_NUM_字符串)

//在数据库中更新用户的当前ip和当前登录日期(无需用户输入)
$db->exec(“更新测试用户设置currIP=$”服务器['REMOTE\u ADDR'],dtCurrLogin=UTC\u TIMESTAMP(),其中user=$user”);

将数组索引调用更改为:

$db->exec("UPDATE test_users 
    SET currIP = '" . $_SERVER['REMOTE_ADDR'] . "', 
        dtCurrLogin = UTC_TIMESTAMP() 
    WHERE user = $user");

我仍然建议使用
prepare
call

$stm = $db->prepare("UPDATE test_users 
        SET currIP = :ip, 
            dtCurrLogin = UTC_TIMESTAMP() 
        WHERE user = :usr");
$stm->bindParam( ':ip', $_SERVER['REMOTE_ADDR'], PDO::PARAM_STR );
$stm->bindParam( ':usr', $user, PDO::PARAM_INT );
$stm->execute();

列dtcurrlogin的类型设置为什么?好的,所以你可以使用mysqlquery作为我下面的答案,它会重新喜欢这个问题我正在用pdo做所有事情。。。这是我使用的教程中的一个示例-$impacted_rows=$db->exec(“updatetable SET field='value');echo$Infected_rows.“West Infected”我不准备使用这个特定的行,因为没有涉及用户输入。。。我认为如果没有准备好的资源,它会更快、更少。正确吗?尝试回显$user可能是null@user756659如果
$user
是整数,那么我的第一个解决方案将非常有效,否则将更改为
“…user=”$用户。“'”
$db->exec(“更新测试用户集currIP=”)“$\u服务器['REMOTE\u ADDR']。”,dtCurrLogin=UTC\u TIMESTAMP(),其中user=“$user.”)即使使用变量也需要引号吗?我不需要UTC_TIMESTAMP()的任何内容,但在另一个方面,我无法使用UTC_TIMESTAMP(),间隔1天,需要更改为日期添加(UTC_TIMESTAMP(),间隔1天)才能工作。。。