我在通过 PDO 查询获取结果时遇到了一个小问题:
$result = $db->prepare("SELECT MIN( CAST( Tstart AS DATETIME ) ) , MAX( CAST( Tend AS DATETIME ) ) , FROM TimeBase
WHERE Daynr = '131'");
$result->execute();
$keep = $result->fetch();
echo $keep['Tstart'];
echo $keep['Tend'];
产生错误:
Undefined index: Tstart
Undefined index: Tend
当我直接运行它时,Mysql语法本身会返回结果。
如果没有 MIN(CAST(.. AS DATETIME))
,PDO 不会造成任何问题,所以我确信问题必须使用此语法进行处理,但我找不到正确的将其获取到 php 变量的方法(或本例中的 echo)。
所以我的问题是在这种情况下将获取的行理解为 PHP 变量的正确方法是什么?
从那里我可以使用此代码将其格式化为日期时间行中的时间吗?
$Start_Time = $keep['time(Tstart)'];
最佳答案
您可以将结果视为位置数组:
echo $keep[0];
echo $keep[1];
或者为您的列指定别名并将结果视为关联数组:
$result = $db->prepare("SELECT MIN( CAST( Tstart AS DATETIME ) ) AS tstart,
MAX( CAST( Tend AS DATETIME ) ) AS tend
FROM TimeBase
WHERE Daynr = '131'");
$result->execute();
$keep = $result->fetch();
echo $keep['tstart'];
echo $keep['tend'];
请注意,顺便说一句,在 from
子句之前有一个多余的逗号。
关于php - 从 MIN(CAST(.. AS DATETIME)) 输出获取值到 php 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37355524/