前提・実現したいこと
(例)PHPでCMSを作っています。
データベースを作り、pdoで接続し、print_rですべての表を出力しようとしたのですが、
HTTP ERROR 500が発生してしまいます。一行ずつ消して確認していったところ、fetch_allの部分を消せばエラーがなくなったので、ここが原因かと思いますが、何が間違っているのかわかりません。
【追記】エラーログを出したら下記のように出ました。
Notice: Undefined variable: execute in /home/users/1/●●●●●-llc/web/cms_test/cms/includes/article.php on line 8←該当箇所に※つけました
Fatal error: Uncaught Error: Method name must be a string in /home/users/1/main.jp-●●●●●-llc/web/cms_test/cms/includes/article.php:8 Stack trace: #0 /home/users/1/main.jp-●●●●●-llc/web/cms_test/cms/index.php(7): Article->fetch_all() #1 {main} thrown in /home/users/1/main.jp-●●●●●-llc/web/cms_test/cms/includes/article.php on line 8
変数に値がはいっていない、存在しないメソッドを呼び出している、というようなことが書かれていますが、どうしたらよいでしょうか。
該当のソースコード
php
1 2__**index.php**__ 3 4<?php 5 6include_once('includes/connection.php'); 7include_once('includes/article.php'); 8 9$article = new Article; 10$articles = $article->fetch_all(); 11 12print_r($articles); 13 14?> 15 16<html> 17 <head> 18 <title>CMS</title> 19 <link rel="stylesheet" href="assets/style.css" /> 20 </head> 21 22 <body> 23 <div class="container"> 24 <a href="index.php" id="logo">CMS</a> 25 26 <ol> 27 <li> 28 <a href="article.php?id=1"> 29 Article Title 30 </a> 31 32 - <small>***</small> 33 </li> 34 </ol> 35 </div> 36 </body> 37 38</html> 39
php
1 2__**article.php**__ 3 4<?php 5 6class Article { 7 public function fetch_all() { 8 global $pdo; 9 10 $query = $pdo->prepare("SELECT * FROM articles"); 11 $query->$execute(); ※ 12 13 return $query->fetchAll(); 14 } 15} 16 17?> 18
php
1__**connection.php**__ 2 3<?php 4 5try { 6 $pdo = new PDO('mysql:host=mysqlXXXXXXXXX', 'XXXXXXX', 'XXXXXXX'); 7} catch (PDOException $e) { 8 exit('Database error.'); 9} 10 11?>
試したこと
■article.phpに記載した内容を、index.phpに移して実行してみたが、変わらず。
■問題の、fetch_allの部分を消して実行したらエラーは消えたが、配列が取得できないのでダメ。
補足情報(FW/ツールのバージョンなど)
ロリポップサーバーを使っています。
ご指摘いただいた箇所を修正いたしましたm(__)mよろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー