Задать вопрос
blackdarthvader
@blackdarthvader
Только учусь кодить ^_^

Как вызвать одну функцию внутри другой?

Привет. Прошу меня не ругать, я гуглил, но ответа так и не смог найти, либо вообще не понимал о чем говорится в статьях...

Проблема в следующем, Мне нужно внутри функции Count() вызвать подключение к базе данных через db().
В том виде как сейчас у меня написано, появляется ошибка Call to undefined function db()

Как я понял, мне нужно эту функцию объявить? Как это сделать?

public static function db()
  {
    static $db = null;
    if(is_null($db)){
      $db = new PDO('mysql:host=localhost;dbname=db', 'database', '123456');
      $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
      $db->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
      $db->query('set names utf8');
    }
    return $db;
  }

  public static function Count()
  {
    $count = db()->query("SELECT COUNT(*) AS count_s FROM pay WHERE status = '1'");
    $count->setFetchMode(PDO::FETCH_ASSOC);
    return $count;
  }
  • Вопрос задан
  • 208 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 2
DevMan
@DevMan
ибо судя по всему это методы, а не функции. и нужно что-то вроде:
$count = $this->db()->query("SELECT COUNT(*) AS count_s FROM pay WHERE status = '1'");
или
$count = self::db()->query("SELECT COUNT(*) AS count_s FROM pay WHERE status = '1'");
в общем - читать ман.
Ответ написан
@davidnum95
Ты вызываешь метод класса из статичного метода. Так делать нельзя. Либо оба метода сделай не статичными, либо наоборот.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы