我有一份准备好的声明:
$query = "Select id, start_date, IFNULL(end_date,start_date) as end_date
FROM table WHERE id=?";
$stmt = $conn->prepare($query);
$stmt->bind_param("i", $id);
if($stmt->execute())
{
$stmt->bind_result($var1, $var2,$var3);
while ($stmt->fetch()) {
printf ("My record: %s %s %s", $var1, $var2,$var3);
}
}
字段类型: id = int(11),end_date =(date),start_date =(date) 我在表中记录了这条记录:
id,start_date,end_date
1,2011-09-17,NULL
当我在本地服务器(PHP版本5.3.3-7 + squeeze3)中执行此操作时,它返回:
`My record: 1 2011-09-17 2011-09-17`
但是当我将它移动到我的主机服务器(PHP Version 5.2.5)时,它返回空字符串和零的字段。
My record: 0
但是,如果我删除IFNULL
返回:
My record: 1 2011-09-17
导致这种情况的原因是什么?