Files
crm.clientright.ru/scripts/check_specific_comment.php
Fedor 01c4fe80b5 chore: snapshot current working tree changes
Save all currently accumulated repository changes as a backup snapshot for Gitea so no local work is lost.
2026-03-26 14:19:01 +03:00

113 lines
3.7 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
/**
* Проверка конкретного комментария по ID
* Вызов: https://crm.clientright.ru/scripts/check_specific_comment.php?id=519716
*/
error_reporting(E_ALL);
ini_set('display_errors', '1');
header('Content-Type: text/plain; charset=utf-8');
chdir(dirname(__DIR__));
require_once 'config.inc.php';
$comment_id = isset($_GET['id']) ? (int)$_GET['id'] : 519716;
// Прямое подключение к БД
$mysqli = new mysqli($dbconfig['db_hostname'], $dbconfig['db_username'], $dbconfig['db_password'], $dbconfig['db_name']);
$mysqli->set_charset('utf8');
if ($mysqli->connect_error) {
die("Ошибка подключения: " . $mysqli->connect_error);
}
echo "Проверка комментария ID={$comment_id}\n";
echo str_repeat('=', 70) . "\n\n";
// 1. Проверка vtiger_crmentity
$stmt = $mysqli->prepare("SELECT * FROM vtiger_crmentity WHERE crmid = ?");
$stmt->bind_param('i', $comment_id);
$stmt->execute();
$result = $stmt->get_result();
if ($result->num_rows === 0) {
echo "❌ Запись в vtiger_crmentity НЕ НАЙДЕНА!\n";
} else {
echo "✅ vtiger_crmentity:\n";
$row = $result->fetch_assoc();
foreach ($row as $key => $value) {
echo " {$key}: " . ($value ?? 'NULL') . "\n";
}
}
echo "\n";
// 2. Проверка vtiger_modcomments
$stmt = $mysqli->prepare("SELECT * FROM vtiger_modcomments WHERE modcommentsid = ?");
$stmt->bind_param('i', $comment_id);
$stmt->execute();
$result = $stmt->get_result();
if ($result->num_rows === 0) {
echo "❌ Запись в vtiger_modcomments НЕ НАЙДЕНА!\n";
} else {
echo "✅ vtiger_modcomments:\n";
$row = $result->fetch_assoc();
foreach ($row as $key => $value) {
if ($key === 'commentcontent') {
echo " {$key}: " . mb_substr($value, 0, 100, 'UTF-8') . "...\n";
} else {
echo " {$key}: " . ($value ?? 'NULL') . "\n";
}
}
}
echo "\n";
// 3. Проверка vtiger_modcommentscf
$stmt = $mysqli->prepare("SELECT * FROM vtiger_modcommentscf WHERE modcommentsid = ?");
$stmt->bind_param('i', $comment_id);
$stmt->execute();
$result = $stmt->get_result();
if ($result->num_rows === 0) {
echo "❌ Запись в vtiger_modcommentscf НЕ НАЙДЕНА!\n";
} else {
echo "✅ vtiger_modcommentscf:\n";
$row = $result->fetch_assoc();
foreach ($row as $key => $value) {
echo " {$key}: " . ($value ?? 'NULL') . "\n";
}
}
echo "\n";
// 4. Попытка выборки с JOIN (как в CRM)
$stmt = $mysqli->prepare("
SELECT m.modcommentsid, m.commentcontent, m.related_to, m.channel,
e.smownerid, e.deleted, e.setype
FROM vtiger_modcomments m
INNER JOIN vtiger_crmentity e ON e.crmid = m.modcommentsid
INNER JOIN vtiger_modcommentscf c ON c.modcommentsid = m.modcommentsid
WHERE m.modcommentsid = ? AND e.deleted = 0
");
$stmt->bind_param('i', $comment_id);
$stmt->execute();
$result = $stmt->get_result();
echo str_repeat('=', 70) . "\n";
if ($result->num_rows === 0) {
echo "С JOIN (как в CRM) — комментарий НЕ ПОПАДАЕТ в выборку!\n";
echo " Возможные причины:\n";
echo " - deleted = 1 в vtiger_crmentity\n";
echo " - Нет записи в vtiger_modcommentscf\n";
} else {
echo "С JOIN (как в CRM) — комментарий НАЙДЕН:\n";
$row = $result->fetch_assoc();
foreach ($row as $key => $value) {
if ($key === 'commentcontent') {
echo " {$key}: " . mb_substr($value, 0, 100, 'UTF-8') . "...\n";
} else {
echo " {$key}: " . ($value ?? 'NULL') . "\n";
}
}
}
$mysqli->close();