SET time_zone =' +05:30'不是PHP的工作

时间:2014-04-18 16:47:31

标签: php mysql timezone

我有以下查询,在我的localhost上可以正常使用,并在数据库中设置当前时间。

$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';,但它有效吗?我应该在哪里解决它?

2 个答案:

答案 0 :(得分:2)

你必须改变这样的引号:

 $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())";

答案 1 :(得分:0)

来自Php manual

  

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

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