Как я могу вызвать функции класса внутри php-скрипта? - PullRequest
0 голосов
/ 19 сентября 2019

У меня есть другой скрипт DBSetting.php, в котором я назначаю данные, необходимые для подключения к моей базе данных MySQL.Но как именно я могу заставить свой скрипт вызывать функцию, когда пытаюсь написать «fetchAll ();»в конце она показывает следующую ошибку:

Ошибка синтаксического анализа PHP: ошибка синтаксиса: неожиданное 'fetchAll' (T_STRING), ожидаемая функция (T_FUNCTION) или const (T_CONST) в / path/to/script/DBclass.php в строке x

<?php    
require_once( 'DBSettings.php' );
class DBClass extends DatabaseSettings
{
    var $classQuery;
    var $link;

    var $errno = '';
    var $error = '';

    // Connects to the database
    function DBClass()
    {

        $settings = DatabaseSettings::getSettings();

        $host = $settings['dbhost'];
        $name = $settings['dbname'];
        $user = $settings['dbusername'];
        $pass = $settings['dbpassword'];

        $this->link = new mysqli( $host , $user , $pass , $name );
    }
    function fetchAll( $result , $resultType = MYSQLI_ASSOC )
    {
        return $result->fetch_all( $resultType );
    }   
}

?>

Я только хочу получить какой-либо вывод, если я запускаю скрипт для командной строки через PHP, DBclass.php это не 'не дает мне ошибку и ведет себя нормально -> поскольку он содержит только функции, конечно

1 Ответ

0 голосов
/ 19 сентября 2019

Не уверен, понял ли он, чего вы пытаетесь достичь, поэтому две вещи:

Вы можете вызвать метод fetchAll(), выполнив что-то вроде этого (не проверено!):

<?php    
require_once( 'DBSettings.php' );
class DBClass extends DatabaseSettings
{
    var $classQuery;
    var $link;

    var $errno = '';
    var $error = '';

    // Connects to the database
    function __construct()
    {

        $settings = DatabaseSettings::getSettings();

        $host = $settings['dbhost'];
        $name = $settings['dbname'];
        $user = $settings['dbusername'];
        $pass = $settings['dbpassword'];

        $this->link = new mysqli( $host , $user , $pass , $name );
    }

    function query( $link )
    {
        return mysqli_query($link, 'SELECT * FROM your_table');
    }

    function fetchAll( $result , $resultType = MYSQLI_ASSOC )
    {
        return $result->fetch_all( $resultType );
    }   
}

?>

И в другом файле:

$db_class = new DBClass();
$query = $db_class->query($db_class->link);
var_dump($db_class->fetchAll($query));
...