Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 日期时间字段赢得';MySQL数据库中的t更新_Php_Mysql_Datetime - Fatal编程技术网

Php 日期时间字段赢得';MySQL数据库中的t更新

Php 日期时间字段赢得';MySQL数据库中的t更新,php,mysql,datetime,Php,Mysql,Datetime,您好,我在更新数据库中的用户上次登录时遇到问题,如果我将其设置为更新其他列,它将正常工作,但当我尝试更新特定列“lastlogin”时,它就是不工作 我的代码: @mysql_query("UPDATE my_users SET lastlogin=NOW() WHERE id=".$_SESSION["id"]); My DB column: column name: lastlogin type: datetime Null: No Default: 0000-00-00

您好,我在更新数据库中的用户上次登录时遇到问题,如果我将其设置为更新其他列,它将正常工作,但当我尝试更新特定列“lastlogin”时,它就是不工作

我的代码:

    @mysql_query("UPDATE my_users SET lastlogin=NOW() WHERE id=".$_SESSION["id"]);

My DB column:

column name: lastlogin

type: datetime

Null: No

Default: 0000-00-00 00:00:00

在数据库中设置列的方式有问题吗?就像我上面提到的,如果我告诉它现在就把()放到另一个专栏中,它就可以正常工作。

使用来尝试找出错误,然后将其发布到这里,这样我们可以在您需要时提供帮助。(将发表评论,但对low rep)

根据我过去的经验,mysql_query()不一定在执行sql之前替换变量。试着用这种格式写。还可以使用mysql\u error检查代码执行是否存在任何问题:

$sql = "UPDATE my_users SET lastlogin=NOW() WHERE id=".$_SESSION["id"]; 
mysql_query($sql) or die(mysql_error());
如果没有错误,则很少有可能解释为什么laslogin条目没有发生:

  • $\u会话[“id”]不包含任何值,并且没有值被传递到mysql
  • 没有与$\u会话[“id”]匹配的id
要调试:

  • 还可以尝试更新其他一些列
  • 您可能还需要检查是否使用了正确的扩展,如PDO

还发现,早期版本的mysql不支持使用now()更新datetime列。在这种情况下,请尝试将列类型重置为时间戳。有关详细信息,请参阅:已解决。下面还有另一个类似的声明,它超越了这一个!我真傻,但很容易错过

您好,就像我提到的,PHP代码运行良好,我可以告诉它在数据库中写入不同的列而不会出现问题。奇怪。尝试将列类型重置为时间戳。关于这一点,我建议您删除
@
mysql\u查询
之前的标志。如果有错误,我想我们会想知道的。另一个建议是:在单独的步骤中将动态生成的SQL语句分配给一个变量,然后echo或vardump变量进行调试。在调用
mysql\u query
之前,我们可以将该SQL语句带到另一个客户端进行测试。
id
列的数据类型是什么?
$\u会话[“id”]
的值是整数吗<代码>mysql接口函数已弃用,并删除了PHP7。使用PDO或mysqli以及带有绑定占位符的准备语句。@spencer7593感谢您的建议。我知道查询正在工作,因为如果我将“lastlogin”更改为任何其他db字段,它会将数据插入数据库。问题是在尝试插入“lastlogin”列时。排除某些可能性。。。表中没有定义更新前的
触发器为
lastlogin
赋值,也没有更新后的
触发器抛出错误并回滚事务。我建议您尝试更新两列,将NOW()分配给
logindate
和另一个表列。看看另一个专栏的更新是否成功。没有理由使用这么长时间以来被弃用的api,也不应该在上面花费更多的精力。