Files
edu/_tmp_like_diag.php
T

34 lines
1.5 KiB
PHP

<?php
declare(strict_types=1);
require __DIR__ . '/edu/bbs/db_conn.php';
$pdo = db_conn();
$kw = '장애인';
$like = '%' . $kw . '%';
$queries = [
'title_only_all' => "SELECT COUNT(*) FROM edu_contents WHERE title LIKE ?",
'desc_only_all' => "SELECT COUNT(*) FROM edu_contents WHERE description LIKE ?",
'desc2_only_all' => "SELECT COUNT(*) FROM edu_contents WHERE description2 LIKE ?",
'all_cols_all_rows' => "SELECT COUNT(*) FROM edu_contents WHERE title LIKE ? OR description LIKE ? OR description2 LIKE ?",
'all_cols_is_active_1' => "SELECT COUNT(*) FROM edu_contents WHERE is_active = 1 AND (title LIKE ? OR description LIKE ? OR description2 LIKE ?)",
'all_cols_is_active_Y' => "SELECT COUNT(*) FROM edu_contents WHERE is_active = 'Y' AND (title LIKE ? OR description LIKE ? OR description2 LIKE ?)",
];
foreach ($queries as $name => $sql) {
$stmt = $pdo->prepare($sql);
if (substr_count($sql, '?') === 1) {
$stmt->execute([$like]);
} else {
$stmt->execute([$like, $like, $like]);
}
echo $name . '=' . (int)$stmt->fetchColumn() . PHP_EOL;
}
echo "--- sample rows ---" . PHP_EOL;
$stmt = $pdo->prepare("SELECT content_id, is_active, title FROM edu_contents WHERE title LIKE ? OR description LIKE ? OR description2 LIKE ? ORDER BY content_id DESC LIMIT 20");
$stmt->execute([$like, $like, $like]);
while ($r = $stmt->fetch(PDO::FETCH_ASSOC)) {
echo (string)$r['content_id'] . "\t" . (string)($r['is_active'] ?? 'NULL') . "\t" . (string)$r['title'] . PHP_EOL;
}