• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:php 関数が定義されていない???)

php関数が定義されていない???

このQ&Aのポイント
  • php関数が定義されていないエラーが発生しています。
  • getBlogという関数が定義されていないため、エラーが発生しています。
  • 別のファイルでgetBlogという関数を使っていますが、関数が定義されていないためエラーになっています。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.5

namespace Blog\Dbc; 回答は「これを取れ!」 ただし、ただとるのはだめです!。 なぜ取らないといけないのかを理解してから取ってください。 また、必ず質問する時は最小限にしましょう。 include/requireで隠蔽して他の人が、あえてわからないようにして 質問するのは、失礼でしょう。 かならず、理解してから進んでください。 こうやれば動く!「ふ~ん、それだけか!」(この時点で理解してない) 同じ問題にぶつかる、同じ質問をする。 これじゃ、回答者を馬鹿にしてるのと同じですから。 あなたも、他の人から「箱は開けないけど中身がわからないんだよね?」 って聞かれたら、回答できないでしょ?って事です。 この場合、回答は「回答が存在しない」が正しい回答でしょう。 (なぜ回答がないのかなどを理解してない状態で) で、次の日「同じ質問をされた」としたら、 あなたならいい気分ですか?って事です。 そこを、直せば、多少いい結果にはなるでしょう。 2~3年もすれば。 もう一度言いますが、最小限の機能テストを理解して進んでください。 オフィシャルサイトで意味を見ればいいだけです。 理解できない機能を使ったら理解できません!って投稿でしょ?これ。 なら、本来の回答は「理解してない機能を使うな!」が正論ですよ。 過去同じミスを繰り返してるのですから、 そろそろ、エンジニアになりましょうよ!。 ってことで頑張って!

その他の回答 (4)

  • wormhole
  • ベストアンサー率28% (1626/5665)
回答No.4

>Fatal error: Uncaught Error: Call to undefined function getBlog() in C:\xampp\htdocs\detail.php:3 Stack trace: #0 {main} thrown in C:\xampp\htdocs\detail.php on line 3 このエラーメッセージの、どこをどう読めば >別のファイルで >function getBlog($id) { > if(empty($id)) { > exit('idが不正です。'); >と、getBlogという関数を使っています。 >それを利用した、と言っています。 こういう解釈になるんでしょうか。 「getBlog()」だけ見て、後はでっちあげていませんか?

kouzou250
質問者

お礼

ご回答誠にありがとうございます。 この場において、でっち上げるとは? どうしているという意味でしょうか? すみません。教えてください。 宜しくお願い申し上げます。

回答No.3

もう一つだけ、ごめんね~。 動かない理由は、こちらでは、わかってるのと、 この問題にぶつかることは、すでに https://okwave.jp/qa/q10024827.html 前回の板での#3で書いてるんですよね。 「(この意味は、後でわかります)」 って書いたのはこのためです。 回答を読まないで進むからそうなるってことを、 そろそろ、覚えてみてはいかがでしょうか? 前回の投稿の時すでに、私も他の人ももう わかってたんですよ。 ってことで今回の板は以上ですが、 なお、情報が足りなすぎるのでこの板だけを見た 他の人には状況は元々伝わってませんので、 直すには、ちゃんと「回答を読む」! 今回の回答ですね。 んじゃ、頑張って!

回答No.2

あと、しつこいようだけど、 テストは「最小限のソースでやりましょ」 あちこちにInclude/requireして、自分でもわけわからなくなった 状態で、他の人に、何?って言われても、 質問者さん自体が隠してる状態なので、他の人も、 普通わからない方が正しいですよ。 今使う部分だけに抜粋しましょ!。 で、動いたものをライブラリ化していきましょう。 今は、逆のことしてます。 動かない物をライブラリにして、メインルーチンが パニックを起こしてる! それじゃ、進むわけがない!(当たり前ですがね) しつこいようですが、土台を作ってください!。 今機能していない土台の上に物を乗せて動かないよ? ってのが今の状態です。 良い事かは、もうわかってるかと。

回答No.1

>何故、3行目がエラーでしょうか? 当然です。 エラーは Fatal error: Uncaught Error: Call to undefined function getBlog() in C:\xampp\htdocs\detail.php:3 Stack trace: #0 {main} thrown in C:\xampp\htdocs\detail.php on line 3 なのですから、 Call to undefined function getBlog() こんな名前の関数はね~よ!と言ってます。 で、3行目。 1行目:<?php 2行目:require_once('dbc.php'); 3行目:$result = getBlog($_GET['id']); 4行目:?> ですね。 ない関数を呼んでいるという事。 んじゃなんで「ないのか?」 require_once('dbc.php'); で、動いてない物をまとめてるからです。 恐らくそのファイルの中身全体的に 動いてないと思いますよ。 そうじゃなければこんなエラーは出ませんから。 それと、これ前回と同じエラーですよ。

kouzou250
質問者

お礼

ご回答誠にありがとうございます。 dbc.phpは動いていないのですね。 動かすためには、どう直せばいいでしょうか? 度々申し訳ございません。    記 <?php namespace Blog\Dbc; function dbConnect(){ $dsn = 'mysql:host=localhost;dbname=blog_app;charset=utf8'; $user = 'blog_user'; $pass = '*********'; try { $dbh = new \PDO($dsn, $user, $pass, [ \PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION, ]); } catch (PDOException $e) { echo '接続失敗' . $e->getMessage(); exit(); }; return $dbh; } function getAllBlog(){ $dbh = dbConnect(); //①SQLの準備 $sql = 'SELECT * FROM blog'; //②SQLの実行 $stmt = $dbh->query($sql); //③SQLの結果を受け取る $result = $stmt->fetchall(\PDO::FETCH_ASSOC); return $result; $dbh = null; } function setCategoryName($category) { if ($category == '1') { return '日常'; } elseif ($category == '2') { return '非日常'; } else { return 'その他'; } } function getBlog($id) { if(empty($id)) { exit('idが不正です。'); } $dbh = dbConnect(); $stmt = $dbh->prepare('SELECT * FROM blog Where id = :id'); $stmt->bindValue(':id', (int)$id, \PDO::PARAM_INT); $stmt->execute(); $result = $stmt->fetch(\PDO::FETCH_ASSOC); if(!$result) { exit('本文がありません。'); } return $result; } ?>

関連するQ&A