From 884c1aa2623199795851dfa7c810692ca71f5989 Mon Sep 17 00:00:00 2001 From: Trevor Slocum Date: Thu, 8 Jul 2021 19:54:00 -0700 Subject: [PATCH] Fix false positives when checking for an existing keyword Resolves #234. --- inc/database/mysql.php | 4 +++- inc/database/mysqli.php | 4 +++- inc/database/pdo.php | 9 +++++---- inc/database/sqlite.php | 4 +++- inc/database/sqlite3.php | 4 +++- 5 files changed, 17 insertions(+), 8 deletions(-) diff --git a/inc/database/mysql.php b/inc/database/mysql.php index 8bf5fa6..8802265 100644 --- a/inc/database/mysql.php +++ b/inc/database/mysql.php @@ -107,7 +107,9 @@ function keywordByText($text) { $result = mysql_query("SELECT * FROM `" . TINYIB_DBKEYWORDS . "` WHERE `text` = '" . mysql_real_escape_string($text) . "'"); if ($result) { while ($keyword = mysql_fetch_assoc($result)) { - return $keyword; + if ($keyword['text'] === $text) { + return $keyword; + } } } return array(); diff --git a/inc/database/mysqli.php b/inc/database/mysqli.php index effa09d..124ecb3 100644 --- a/inc/database/mysqli.php +++ b/inc/database/mysqli.php @@ -124,7 +124,9 @@ function keywordByText($text) { $result = mysqli_query($link, "SELECT * FROM `" . TINYIB_DBKEYWORDS . "` WHERE `text` = '" . mysqli_real_escape_string($link, $text) . "'"); if ($result) { while ($keyword = mysqli_fetch_assoc($result)) { - return $keyword; + if ($keyword['text'] === $text) { + return $keyword; + } } } return array(); diff --git a/inc/database/pdo.php b/inc/database/pdo.php index 49cc7ce..7e6ed80 100644 --- a/inc/database/pdo.php +++ b/inc/database/pdo.php @@ -85,12 +85,13 @@ function keywordByID($id) { function keywordByText($text) { $text = strtolower($text); - $keywords = array(); $results = pdoQuery("SELECT * FROM " . TINYIB_DBKEYWORDS . " WHERE text = ?", array($text)); - while ($row = $results->fetch(PDO::FETCH_ASSOC)) { - $keywords[] = $row; + while ($keyword = $results->fetch(PDO::FETCH_ASSOC)) { + if ($keyword['text'] === $text) { + return $keyword; + } } - return $keywords; + return array(); } function allKeywords() { diff --git a/inc/database/sqlite.php b/inc/database/sqlite.php index 73b0a47..182249d 100644 --- a/inc/database/sqlite.php +++ b/inc/database/sqlite.php @@ -93,7 +93,9 @@ function keywordByText($text) { $text = strtolower($text); $result = sqlite_fetch_all(sqlite_query($GLOBALS["db"], "SELECT * FROM " . TINYIB_DBKEYWORDS . " WHERE text = '" . sqlite_escape_string($text) . "'"), SQLITE_ASSOC); foreach ($result as $keyword) { - return $keyword; + if ($keyword['text'] === $text) { + return $keyword; + } } return array(); } diff --git a/inc/database/sqlite3.php b/inc/database/sqlite3.php index 17cf7a5..6ae49fe 100644 --- a/inc/database/sqlite3.php +++ b/inc/database/sqlite3.php @@ -108,7 +108,9 @@ function keywordByText($text) { $text = strtolower($text); $result = $db->query("SELECT * FROM " . TINYIB_DBKEYWORDS . " WHERE text = '" . $db->escapeString($text) . "'"); while ($keyword = $result->fetchArray()) { - return $keyword; + if ($keyword['text'] === $text) { + return $keyword; + } } return array(); }