【问题标题】:SET time_zone = '+05:30' is not working PHPSET time_zone = '+05:30' 不工作 PHP
【发布时间】:2014-04-18 16:47:31
【问题描述】:

我有以下查询,它在我的本地主机上运行良好,并在数据库中设置当前时间。

$query="INSERT INTO mytable (user_id, user_datetime) VALUES ".
       "(".$_SESSION["user_id"].", NOW());";

但是当我在美国服务器上托管我的网站时,它会将美国当前时间放入数据库中,这是不可取的。我想输入印度当前时间。

为此,我将上述查询修改为

$query="SET time_zone = '+05:30';INSERT INTO mytable (user_id, user_datetime) VALUES ".
       "(".$_SESSION["user_id"].", NOW());";

但这不起作用。虽然如果我直接在 mysql 上运行SET time_zone = '+05:30';,它可以工作吗?我应该去哪里解决它?

【问题讨论】:

  • 我不能使用 mysql_query($query) 同时触发 2 个查询吗?我需要单独解雇他们吗?

标签: php mysql timezone


【解决方案1】:

你必须像这样更改引号:

 $query="INSERT INTO mytable (user_id, user_datetime) 
         VALUES ( '".$_SESSION['user_id']."', NOW())";

SET 用于更新而不是插入。

如果你还想插入 time_zone

 $query="INSERT INTO mytable (user_id, user_datetime ,time_zone) 
         VALUES ( '".$_SESSION['user_id']."', NOW() ,'+05:30' )";

如果你已经有了值,你可以寻找更新。

 $query="UPDATE mytable SET time_zone = '+05:30' 
         WHERE user_id ='".$_SESSION['user_id']."'  ";

编辑:您不能同时运行两个查询。你必须同时运行这两个查询

$query1="SET time_zone = '+05:30' " ;
$query="INSERT INTO mytable (user_id, user_datetime) 
         VALUES ( '".$_SESSION['user_id']."', NOW())";

【讨论】:

  • 这个查询对我来说已经很好了。为什么要在 Session['user_id'] 周围使用单引号,然后使用双引号,因为它是整数而不是字符串。
  • 你还想插入 time_zone 吗?
  • 不,我只想在查询中使用 NOW 之前设置时区,以便 NOW 选择印度当前时间而不是美国。
  • 你的最后一次更新是我想要的。在触发使用 NOW 的主查询之前,我必须触发 SET time_zone 查询,以便 NOW 可以选择更新的时区。
  • 很高兴它帮助了你:)。
【解决方案2】:

来自Php manual

mysql_query() 发送唯一查询(多个查询不 支持)到服务器上的当前活动数据库 与指定的link_identifier 关联。

所以移动到mysqli 或单独执行每个查询

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-26
    • 1970-01-01
    • 2018-04-22
    相关资源
    最近更新 更多