[aur-dev] [PATCH 5/5] Fix SQL query to retrieve language setting
Lukas Fleischer
lfleischer at archlinux.org
Mon Feb 27 18:49:55 UTC 2017
In commit e171f6f (Migrate all DB code to use PDO, 2012-08-08),
PDOStatement::fetchAll() was introduced as a drop-in replacement for
mysql_fetch_array(). However, PDOStatement::fetchAll() returns a list of
all results while mysql_fetch_array() returns a single result only.
Instead of adding the missing indirection, simplify the code by using
PDO::fetchColumn().
Also add some safeguards to prevent warnings if the result set returned
by the query is empty.
Signed-off-by: Lukas Fleischer <lfleischer at archlinux.org>
---
web/lib/translator.inc.php | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/web/lib/translator.inc.php b/web/lib/translator.inc.php
index 58648c4..d10f8e9 100644
--- a/web/lib/translator.inc.php
+++ b/web/lib/translator.inc.php
@@ -111,14 +111,16 @@ function set_lang() {
$result = $dbh->query($q);
if ($result) {
- $row = $result->fetchAll();
- $LANG = $row[0];
+ $LANG = $result->fetchColumn(0);
+ if (!$LANG) {
+ unset($LANG);
+ }
}
$update_cookie = 1;
}
# Set $LANG to default if nothing is valid.
- if (!array_key_exists($LANG, $SUPPORTED_LANGS)) {
+ if (!isset($LANG) || !array_key_exists($LANG, $SUPPORTED_LANGS)) {
$LANG = config_get('options', 'default_lang');
}
--
2.12.0
More information about the aur-dev
mailing list