diff --git a/GameEngine/Database.php b/GameEngine/Database.php index 45d9273f..719e3205 100755 --- a/GameEngine/Database.php +++ b/GameEngine/Database.php @@ -214,7 +214,36 @@ class MYSQLi_DB implements IDbConnection { // execute the statement to get its value back if (mysqli_stmt_execute($prep)) { $this->selectQueryCount++; - return mysqli_stmt_get_result($prep); + + // read metadata, so we know what fields we were actually selecting + // and can prepare our temporary variables to read them into + $resultMetaData = mysqli_stmt_result_metadata($prep); + + $stmtRow = array(); + $rowReferences = array(); + while ($field = mysqli_fetch_field($resultMetaData)) { + $rowReferences[] = &$stmtRow[$field->name]; + } + mysqli_free_result($resultMetaData); + + // now call bind_result with all our variables to recive the data prepared + call_user_func_array(array($prep, 'bind_result'), $rowReferences); + + // prepare the array-ed result + while(mysqli_stmt_fetch($prep)){ + $row = array(); + foreach($stmtRow as $key => $value){ + $row[$key] = $value; + } + $queryResult[] = $row; + } + + // free the result and the prepared statement itself + mysqli_stmt_free_result($prep); + mysqli_stmt_close($prep); + + // and return the value + return $queryResult; } else { throw new Exception('Failed to execute an SQL statement!'); } diff --git a/src/Entity/User.php b/src/Entity/User.php index 81783a7e..dbf99f83 100644 --- a/src/Entity/User.php +++ b/src/Entity/User.php @@ -77,7 +77,7 @@ class User { public static function exists(IDbConnection $db, $value) { $sql = '( SELECT - Count(*) AS in_users + Count(*) AS Total FROM '.TB_PREFIX.'users WHERE @@ -86,7 +86,7 @@ class User { UNION ALL ( SELECT - Count(*) AS in_act + Count(*) AS Total FROM '.TB_PREFIX.'activate WHERE @@ -95,9 +95,6 @@ class User { $res = $db->query_new($sql, $value, $value, $value, $value); - // convert result into an array - $res = mysqli_fetch_array($res, MYSQLI_NUM); - - return ($res[0] > 0 || (count($res) > 1 && $res[1] > 0)); + return ($res[0]['Total'] > 0 || $res[1]['Total']); } } \ No newline at end of file