Mysql pdo exec update语句出错?
正在获取以下内容的错误。。。在非pdo格式下工作良好: 分析错误:语法错误,意外的“”(T_封装的_和_空格),需要标识符(T_字符串)或变量(T_变量)或数字(T_NUM_字符串)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
//在数据库中更新用户的当前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天)才能工作。。。