Я обнаружил ошибку при отладке некоторого кода:
эта функция:
function mrbsGetEntryInfo($id)
{
$sql = "SELECT start_time, end_time, entry_type, repeat_id, room_id,
timestamp, beneficiaire, name, type, description
FROM ".TABLE_PREFIX."_entry
WHERE id = '".$id."'";
$res = grr_sql_query($sql);
if (!$res)
return;
$ret = '';
if (grr_sql_count($res) > 0)
{
$row = grr_sql_row($res, 0);
$ret["start_time"] = $row[0];
$ret["end_time"] = $row[1];
$ret["entry_type"] = $row[2];
$ret["repeat_id"] = $row[3];
$ret["room_id"] = $row[4];
$ret["timestamp"] = $row[5];
$ret["beneficiaire"] = $row[6];
$ret["name"] = $row[7];
$ret["type"] = $row[8];
$ret["description"] = $row[9];
}
grr_sql_free($res);
return $ret;
}
В Windows переменная $ret = ''
работает нормально, и при выводе переменной мы получаем полный спектр от start_time
до description
.
Но в Linux CentOS функциональный блок на $ret=''
выводит только $ret["type"]
( type - это один символ)
проблема была исправлена переключением ''
на null
. Я не понимаю, почему, я нашел это объясняющее разницу между '' и нулем
Как сказано в теме выше, ''
- пустая строка, а null
- просто переменная, в которой ничего нет. Я до сих пор не понимаю, почему это решило проблему.
полезная информация:
+------------+------------+--------------+
| | Windows | Linux CentOS |
+------------+------------+--------------+
| OS version | Windows 10 | Centos 7.5 |
+------------+------------+--------------+
| PHP | 7.1.9 | 7.2.11 |
+------------+------------+--------------+
| MySQL | 5.7.19 | 5.7.24 |
+------------+------------+--------------+
| Apache | 2.4.27 | Apache/2.4.6 |
+------------+------------+--------------+