SET time_zone='+05:30';无法使用PHP


SET time_zone = '+05:30' is not working PHP

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

$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';,它能工作吗?我应该在哪里解决它?

您必须这样更改引号:

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

SET用于更新不插入。

如果您还想插入时区

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

来自Php手册

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

所以转移到mysqli或分别执行每个查询