Après un appel inter-classes, la méthode est introuvable
方人胥
方人胥 2021-06-12 17:16:18
0
2
805

Exercice de surcharge de méthode statique pour obtenir un accès chaîné à la base de données

demo5.php fait référence à la classe de Query.php

Puis en accédant à la méthode dans Query, la page m'informe que la méthode 'table' n'a pas été trouvée dans la base de données

Ce qui suit Ceci est le code source, j'espère que vous pourrez m'aider à vérifier les erreurs

Le premier est Query.php

pdo = $pdo; } //调用表名 public function table($tableName) { $this->table = $tableName; //关键是这一步 return $this; } //调用字段 public function field($fields) { $this->field = $fields; //关键是这一步 return $this; } //设置查询条件 public function where($where) { $this->where = $where; return $this; } //设置显示数量 public function limit($limit) { $this->limit = $limit; return $this; } //创建SQL语句查询 public function select() { //设置查询条件 $fields = empty($this->field) ? '*' : $this->field; $where = empty($this->where) ? '' : ' WHERE ' . $this->where; $limit = empty($this->limit) ? '' : ' LIMIT ' . $this->limit; //SQL $sql = 'SELECT '.$fields. 'FROM' .$this->table. $where . $limit; //预处理执行 $stmt = $this->pdo->prepare($sql); $stmt->execute(); return $stmt->fetchAll(PDO::FETCH_ASSOC); } }

Le second est demo5.php

field('cate_id, name, alias') ->where('cate_id>=2') ->select(); foreach($cats as $cat){ print_r($cat); }

方人胥
方人胥

répondre à tous (2)
方人胥

J'ai trouvé le problème, c'est la ligne 65 de Query.php Lors de l'épissage, des espaces doivent être ajoutés avant et après FROM.

    方人胥

    La méthode d'invite de page 'table' n'a pas été trouvée dans la base de données

    image.png

      Derniers téléchargements
      Plus>
      effets Web
      Code source du site Web
      Matériel du site Web
      Modèle frontal
      À propos de nous Clause de non-responsabilité Sitemap
      Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!