我有问题来配置我的服务器环境,PHP与PDO没有格式化日期像本地主机。 为了测试它,我创建了两个连接(使用ocdo和mysql使用pdo)。 在localhost上,oci和mysql正常运行,但在服务器上只有mysql保持正确的格式。服务器/本地主机之间的不同环境正在改变日期格式-php pdo mysql/oci
重要细节:在sqldeveloper上,它显示与localhost pdo/oci相同格式的数据。
我的本地主机是WINDOWS 7,而我的服务器是LINUX DEBIAN X64。
服务器上的pdo/oci可能会发生什么情况?
代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sem título</title>
</head>
<body>
<?php
try
{
$params->host = "172.0.0.0:1521";
$params->dbname = "geo";
$params->user = "root";
$params->pass = "";
$conn = new PDO("oci:dbname=//$params->host/$params->dbname;charset=UTF8", "$params->user", "$params->pass");
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $conn->prepare("select * from tb_geooficio where tipo = 1 and cadastro_im = 37693500 ");
$stmt->execute();
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
print_r($result);
}
catch(Exception $e)
{
echo $e->getMessage();
}
?>
<?php
try
{
$host = "200.0.0.1";
$user = "postmaster";
$pass = "^[email protected]^";
$db = "bd_controleinternet";
$conn = new PDO("mysql:host=$host; dbname=$db", "$user", "$pass");
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $conn->prepare("select * from tbl_secretaria where sec_id = 7");
$stmt->execute();
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
print_r($result);
}
catch(Exception $e)
{
echo $e->getMessage();
}
?>
</body>
</html>
结果:
你比较环境之间的php.ini? – prodigitalson 2013-02-18 20:01:28
我能比较什么?两个php.ini的时区是America/Sao_Paulo – claudioivp 2013-02-18 20:02:46
尽管我不知道原因,但可以在SELECT中使用mysql日期函数来显式指定返回日期的方式:[mysql date docs](https ://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html) – Jerry 2013-02-18 20:03:20