Не понимаю как банальный Селект в базу может вносить изменения в переменную? (в коде сделал пометки)
...........
try {
if (strlen($review) > 100) {
//первая проверка - нет ли уже в базе отзывов с таким именем в это время// если поднять сюда file_put_contents('/test.txt то проблем нет, все отзывы на месте
$proverka = $conn->query("SELECT id FROM ....'");
$result_proverka = $proverka->fetchAll(PDO::FETCH_ASSOC);
$str100 = substr($review,0,100);
// если поднять сюда file_put_contents('/test.txt то проблем нет, все отзывы на месте//вторая проверка - проверяю первые 100 символов отзыва (так как отзывы на сайт приходят из разных мест и могут быть одинаковые отзывы, а авторы разные)
$proverka2 = $conn->query("SELECT * FROM `xy_comments` WHERE `object_group` = 'com_firm' AND `object_id` = '{$result[0]['id']}' AND `description` LIKE '{$str100}%' ORDER BY `xy_comments`.`id` DESC limit 100");
$result_proverka2 = $proverka2->fetchAll(PDO::FETCH_ASSOC);
//и вот тут магия - после второго селекта пропадает часть отзывов - WTF??? Стоит его закомментировать и все отзывы запишутся в test.txtif(!empty($_SERVER['REMOTE_ADDR'])){
file_put_contents('/test.txt', $author.'---'.$review. PHP_EOL, FILE_APPEND | LOCK_EX);
}
..........
Dram
Причина найдена — из-за спец. символов в отзывах второй запрос в базу заканчивался ошибкой, а так как у меня Трай-Кетч, то я не видел ошибки.
mb_substr вместо substr решило проблему
miketomlin
Dram #: а так как у меня Трай-Кетч, то я не видел ошибки
Трай/кятч нужен, чтобы ловить ошибки, а не терять 😉
miketomlin
Dram : file_put_contents(‘/test.txt’
Это сильно! Под виндами что ли работаешь?
miketomlin
Dram : $str100 = substr($review,0,100);
Однобайтовая кодировка? И не насыщенный форматированием текст?
Dram
Не понимаю как банальный Селект в базу может вносить изменения в переменную? (в коде сделал пометки)
Dram
Причина найдена — из-за спец. символов в отзывах второй запрос в базу заканчивался ошибкой, а так как у меня Трай-Кетч, то я не видел ошибки.
mb_substr вместо substr решило проблему
miketomlin
а так как у меня Трай-Кетч, то я не видел ошибки
Трай/кятч нужен, чтобы ловить ошибки, а не терять 😉
miketomlin
file_put_contents(‘/test.txt’
Это сильно! Под виндами что ли работаешь?
miketomlin
$str100 = substr($review,0,100);
Однобайтовая кодировка? И не насыщенный форматированием текст?