[aur-dev] [PATCH 1/2] Fix package notification

Lukas Fleischer archlinux at cryptocrack.de
Tue Sep 18 09:34:12 EDT 2012


One cannot check if the PDOStatement object returned by query()
evaluates to true in order to check for a non-empty record set. Modify
the SQL query to count the number of records instead of retrieving the
records themselves and fixing the check.

Regression introduced in e171f6f34eeacf35cf7142b4788d43e7d0978546.

Signed-off-by: Lukas Fleischer <archlinux at cryptocrack.de>
---
 web/lib/pkgfuncs.inc.php | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/web/lib/pkgfuncs.inc.php b/web/lib/pkgfuncs.inc.php
index 0b3a6cb..593ccde 100644
--- a/web/lib/pkgfuncs.inc.php
+++ b/web/lib/pkgfuncs.inc.php
@@ -1134,12 +1134,12 @@ function pkg_notify ($atype, $ids, $action=true, $dbh=NULL) {
 
 
 		if ($action) {
-			$q = "SELECT * FROM CommentNotify WHERE UserID = $uid";
-			$q .= " AND PkgID = $pid";
+			$q = "SELECT COUNT(*) FROM CommentNotify WHERE ";
+			$q .= "UserID = $uid AND PkgID = $pid";
 
 			# Notification already added. Don't add again.
 			$result = $dbh->query($q);
-			if (!$result) {
+			if ($result->fetchColumn() == 0) {
 				$q = "INSERT INTO CommentNotify (PkgID, UserID) VALUES ($pid, $uid)";
 				$dbh->exec($q);
 			}
@@ -1147,8 +1147,8 @@ function pkg_notify ($atype, $ids, $action=true, $dbh=NULL) {
 			$output .= $pkgname;
 		}
 		else {
-			$q = "DELETE FROM CommentNotify WHERE PkgID = $pid";
-			$q .= " AND UserID = $uid";
+			$q = "DELETE FROM CommentNotify WHERE PkgID = $pid ";
+			$q .= "AND UserID = $uid";
 			$dbh->exec($q);
 
 			$output .= $pkgname;
-- 
1.7.12



More information about the aur-dev mailing list