PHP

全18810件中101~120件表示
  • $_POST変数が受け取れない。

    いつも大変お世話になり誠にありがとうございます。 度々申し訳ございません。 標記の件。 $_POST変数が受け取れません。 一昨日はこれで行けたと思ったのですが var_dump()で調べたらNULLでした。 どうして$_POST変数が受け取れないのでしょうか? すみません。どうか教えてください。 エラーメッセージは Warning: Undefined array key "name" in C:\xampp\htdocs\blog_create.php on line 11 Warning: Undefined array key "title" in C:\xampp\htdocs\blog_create.php on line 12 Warning: Undefined array key "category" in C:\xampp\htdocs\blog_create.php on line 13 Warning: Undefined array key "content" in C:\xampp\htdocs\blog_create.php on line 14 ペンネームブログタイトルカテゴリー 本文 です。 コードは form.php <body> <div class="v_line_fix"> <h1>Blog K・T</h1> <h2><a href="index.html">トップページ</a></h2> <?php if( $mode=='input'){} ?> <h2>ブログフォーム</h2> <form action="/blog_create.php/" method=_POST> ペンネーム<br> <input type="text" name="title"><br> ブログタイトル<br> <input type="text" name="title"><br> カテゴリー<br> <input type="text" name="title"><br> ブログ本文<br> <textarea name="content" id="content" cols="50" rows="80"></textarea><br> <input type="submit" value="確認ページへ"> </form> <p><a href="/">戻る</a></p> </body> </html> blog_create.php <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Blog</title> </head> <body> <?php $name = $_POST["name"]; $title = $_POST["title"]; $category = $_POST["category"]; $content = nl2br($_POST["content"]); //$post_at = $_POST["post_at"]; echo "ペンネーム{$name}"; echo "ブログタイトル{$title}"; echo "カテゴリー {$category}"; echo "本文 {$content}"; ?> <hr> <br> <input type="submit" action="/kanryou.php" value="送信する"> </body> 後退してしまいました。 すみません。 ご回答のほど何卒宜しくお願い申し上げます。

    • ベストアンサー
    • kouzou250
    • PHP
    • 回答数1
  • 送信したデータが受け取れない(php)

    Laravelで日つけをテーブルで表示してその日つけの横の ボタンを押すと次の画面に遷移するようなことをやろうとしています。 受信側で受け取った日つけを一旦そのままで表示して 編集しようとしています。 ページ遷移はしますが、受信側のinput typeのvalue値で表示させようと したところ値が表示されません。特にエラーにはなりません。 因みに日付は表示側でループしていて172431(2022年の7月の日曜日) を試しに送信側で echo を掛けたら表示されます。 また、遷移するときのurlにはhttp://localhost:8000/exchange/17と出て Exchangeページはちゃんと遷移できているのでデータがきちんと渡っていないようです。よろしくおねがいします。 (送信側) echo '<form action="'.url('exchange/'.$dddd). '" method="POST">'; echo '<input type="hidden" name="_token" value="' . csrf_token() . '">'; echo '<input type="hidden" name="date_time" value="$dddd">'; echo '<input type="hidden" name="start_time" value="00:00">'; echo "<button type=\"submit\" class=\"btn btn-primary\">編集編集</button>"; (受取側) <input type="date" id="date-time" name="date_time" value=<?php print $_POST["date_time"]?> class="w-full bg-gray-100 bg-opacity-50 rounded border border-gray-300 focus:border-indigo-500 focus:bg-white focus:ring-2 focus:ring-indigo-200 text-base outline-none text-gray-700 py-1 px-3 leading-8 transition-colors duration-200 ease-in-out"> (Controller) Route::post('/exchange/{dddd}', [KintaiController::class,'exchange']) ->middleware('auth:users') ->name('exchange'); (日付を計算) $ym = date("Ym"); $d = mktime(0, 0, 0, $ym, 16 + $i, $ym); //日付ごとの配列のキー $dd = date('Y-m-d', $d);//2022-7-27 $dddd = date('d',strtotime($dd)); echo $dddd;//1724310714

  • preg_replaceについての質問です

    掲示板用のスクリプトなんですが、 >>(数字) をURLに変換するのはどうすればいいのでしょう? $message = preg_replace("/>>(\d+)/","<a href=\"#$1\">&gt;&gt;$1</a>",$message);

  • WordPressの質問(q10023298)の続

    wordpressの検索、アーカイブ、カテゴリーをカスタムフィールドごとに分けることは可能でしょうか?

    • ベストアンサー
    • php_learn
    • PHP
    • 回答数61
  • 正規表現で抽出がおかしい

    掲示板のSETTING.TXTを読み込んでサブタイトルを抽出するコードなんですけど、そのサブタイトルにスペースが入っているとうまくいきません。 以下、ソースコードです。 $settings = fopen("./$bbs/SETTING.TXT",'r'); $setting = fread($settings,filesize("./$bbs/SETTING.TXT")); fclose($settings); preg_match('/BBS_SUBTITLE=(\w+)/',$setting,$match); echo $match[1];

  • MySQLへの接続

    いつも大変お世話になり誠にありがとうございます。 標記の件。 phpの設定で、 https://www.javadrive.jp/php/mysql/index1.html を見て、php.iniのextension php_mysqlを探しても どこにも見当たりません。 どういうことなのでしょうか? 度々申し訳ございません。 教えてください。 宜しくお願い申し上げます。

    • ベストアンサー
    • kouzou250
    • PHP
    • 回答数1
  • $dbh = dbConnect();

    いつもお世話になりありがとうございます。 標記の件。 エラーになります。 どう直せばいいでしょうか? エラーメッセージは Fatal error: Uncaught Error: Call to undefined function dbConnect() in C:\xampp\htdocs\blog_create.php:9 Stack trace: #0 {main} thrown in C:\xampp\htdocs\blog_create.php on line 9 です。 コーディングは下記です。 <?php //require_once('form.html'); require_once('blog.php'); $sql = "INSERT INTO table_name(name,title,category,content) VALUES (:name, :title, :category, :content,)"; $dbh = dbConnect(); $dbh->beginTransaction(); try { $stmt = $dbh->prepare($sql); $stmt->bindValue(':id', $blogs['id'], PDO::PARAM_INT); $stmt->bindValue(':name', $blogs['name'], PDO::PARAM_STR); $stmt->bindValue(':title', $blogs['title'], PDO::PARAM_STR); $stmt->bindValue(':category', $blogs['category'], PDO::PARAM_STR); $stmt->bindValue(':content', $blogs['content'], PDO::PARAM_STR); $stmt->bindValue(':post_at', $blogs['post_at'], PDO::PARAM_INT); $stmt->execute(); $stmt->commit(); echo 'ブログを投稿しました!'; } catch (PDOException $e) { $dbh->rollBack(); exit($e); } blog.php <?php //require_once('dbc.php'); //<?php //class Dbc //{ // protected $table_name; //protected function dbConnect() //{ $dsn = 'mysql:host=localhost;dbname=blog_app;charset=utf8'; $user = 'blog_user'; $pass = 'rhythm0!KT'; try { $dbh = new \PDO($dsn, $user, $pass, [ \PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION, ]); } catch (PDOException $e) { echo '接続失敗' . $e->getMessage(); exit(); }; return $dbh; //} function getAll() { $dbh = $this->dbConnect(); //①SQLの準備 $sql = "SELECT * FROM $this->table_name"; //②SQLの実行 $stmt = $dbh->query($sql); //③SQLの結果を受け取る $result = $stmt->fetchall(\PDO::FETCH_ASSOC); return $result; $dbh = null; } $dbh = $this->dbConnect(); $sql = "SELECT * FROM $this->table_name"; $stmt = $dbh->prepare("SELECT * FROM $this->table_name Where id = :id"); $stmt->bindValue(':id', (int)$id, \PDO::PARAM_INT); $stmt->execute(); $result = $stmt->fetch(\PDO::FETCH_ASSOC); if (!$result) { exit('本文がありません。'); } return $result; //} //function blogCreate($blogs) { $sql = 'INSERT INTO blog(title, content, category, publish_status) VALUES (:title, :content, :category, :publish_status)'; $dbh = $this->dbConnect(); $dbh->biginTransaction; try { $stmt = $dbh->prepare($sql); $stmt->bindValue(':title', $blogs['title'], \PDO::PARAM_STR); $stmt->bindValue(':content', $blogs['content'], \PDO::PARAM_STR); $stmt->bindValue(':category', $blogs['category'], \PDO::PARAM_INT); $stmt->bindValue(':publish_status', $blogs['publish_status'], \PDO::PARAM_INT); $stmt->execute(); $dbh->commit(); echo 'ブログを投稿しました!'; } catch (PDOException $e) { $dbh->rollBack(); exit($e); } } function delete($id) { if (empty($id)) { exit('idが不正です。'); } $dbh = $this->dbConnect(); $stmt = $dbh->prepare("DELETE FROM $this->table_name Where id = :id"); $stmt->bindValue(':id', (int)$id, \PDO::PARAM_INT); $stmt->execute(); echo 'ブログを削除しました!'; return $result; } //} ?> 度々申し訳ございません。 教えてください。 ご回答のほど宜しくお願い申し上げます。

    • ベストアンサー
    • kouzou250
    • PHP
    • 回答数5
  • <?php if( $mode=='input')

    いつもお世話になりありがとうございます。 標記の件。 6行目がエラーになります。 エラーメッセージは Parse error: Unclosed '{' on line 64 in C:\xampp\htdocs\form.html on line 85 です。 <body> <div class="v_line_fix"> <h1>Blog K・T</h1> <h2><a href="index.html">トップページ</a></h2> <?php if( $mode=='input'){ ?> <h1>ブログフォーム</h1> <form action="/blog_create.php/" method=_POST>  ペンネーム<br> <input type="text" name="name"><br>   ブログタイトル<br>   <input type="text" name="title"><br>    カテゴリー<br> <input type="text" name="category"><br> ブログ本文<br> <textarea name="content" id="content" cols="50" rows="80"></textarea><br> <input type="submit" value="送信"> </form> <p><a href="/">戻る</a></p> </body> どう直せばいいでしょうか? 度々申し訳ございません。 ご回答のほど宜しくお願い申し上げます。

    • ベストアンサー
    • kouzou250
    • PHP
    • 回答数1
  • ブログサイトを0から作り直す。

    いつもお世話になりありがとうございます。 標記の件。 いままで、YouTubeを転記してきましたが、 それではダメだと思います。 YouTubeは入門書に載ってないことをイッパイ 使いすぐているからです。 mb_substr(0,$msg)が使えるかも知れません。 その他にゼロベースで作り直すにあたって、 便利な用語をアドバイスできませんか??? ぜひ、アドバイスください。 宜しくお願い申し上げます。

    • ベストアンサー
    • kouzou250
    • PHP
    • 回答数5
  • 最低限のsecurityは???

    いつもお世話になりありがとうございます。 $_POSTやGETを使わずに出来るかも知れません。 まだ、解りませんが・・・。 ブログサイトを作るにあたり、最低限のセキュリティーは、 何が外せませんか??? サーバの一種ですから、セキュリティーを考えていないと 大変なことになります。 まだ経験がないので実感はないのですが・・・。 何卒、最低限のセキュリティーを教えてください。 宜しくお願い申し上げます。

    • ベストアンサー
    • kouzou250
    • PHP
    • 回答数3
  • require once('***.php')

    いつもお世話になりありがとうございます。 標記の件。 require once('***.php')はそんなに便利な機能なのですか? オブジェクト指向の項に再三登場します。 require onceの説明がないのです。 何のために使うのですか? 検索しても納得のいく説明が得られません。 どういう機能なのですか? ***.phpを丸っと持ってくる。というイメージです。 と、YouTubeで聞きましたが、それだったらコピー すればいいと思います。 ***.phpをどうする機能なのでしょうか? 度々申し訳ございません。 どうか解りやすく、具体的にご説明願います。 php+MySQLの入門書を読んでいます。 途中で壁にぶち当たりました。 $_POSTも分かりにくいです。 すみません。 イッパイ質問あるのですが、 まず、require once('***.php')について教えて戴きたいです。 宜しくお願い申し上げます。

    • ベストアンサー
    • kouzou250
    • PHP
    • 回答数5
  • phpinfo();表が出ない???

    いつも大変お世話になり誠にありがとうございます。 標記の件。 <html> <head><title>HelloWorld</title></head> <body> <?php echo 'Hello World!'; ?> </body> </html> ではlocalhost/~ で表示されました。 しかし <?php phpinfo(); <? ではlocalhost/~ で例の表が出てきません。 どうしたら表が出るでしょうか? 度々すみません。 ご回答のほど、宜しくお願い申し上げます。

    • ベストアンサー
    • kouzou250
    • PHP
    • 回答数4
  • ルートが通らない(laravel)

    php artisan route:listコマンドで見るとURIがedit/{id}で確認できるのですが 404エラーが出てNot foundになります。 エラーのurlはlocalhost:8000/%7B%7B%20url('user/edit/'.12)%7D%7Dと なります。 viewとweb.phpとcontrollerの該当箇所は下記の通りです。 (web.phpの部分) Route::post('/edit/{$id}',[KintaiController::class,'edit']) ->middleware('auth:users') ->name('edit'); (viewの部分) echo "<form action=\"{{ url('user/edit/'.$e_time->id)}}\" method=\"POST\">"; echo '<input type="hidden" name="_token" value="' . csrf_token() . '">'; echo "<button type=\"submit\" class=\"btn btn-primary\">更新</button>"; echo "</form>"; echo "</td>"; (controllerの部分) public function edit($id) { $kintaii = Kintai::findOrFail($id); // 取得した値をビュー「user/edit」に渡す return view('user/edit', compact('kintaii')); } index.blade.php内の編集ボタンを押すとuser/edit.blade.phpを呼び出すような仕様にしたいと思っています。 どうかよろしくお願いいたします。

    • ベストアンサー
    • iyumoyumo
    • PHP
    • 回答数1
  • validateどう定義すればいいでしょうか???

    いつも大変お世話になり誠にありがとうございます。 標記の件。 blog.php で //ブログのバリデーション function blogValidate($blogs) { if (empty($blogs['title'])) { exit('タイトルを入力してください。'); } if (mb_strlen($blogs['title']) > 191) { exit('タイトルは191文字以下にしてください。'); } if (empty($blogs['content'])) { exit('本文を入力してください。'); } if (empty($blogs['category'])) { exit('カテゴリーは必須です。'); } if (empty($blogs['publish_status'])) { exit('公開ステータスは必須です。'); } } と定義してあるのにどうして blog_update.php の7行目 <?php require_once('blog.php'); $blogs = $_POST; $blog = new Blog(); $blog->blogValidate($blogs);  ★ここでエラー $blog->blogUpdate($blogs); ?> エラーコードは Fatal error: Uncaught Error: Call to undefined method Blog::blogValidate() in C:\xampp\htdocs\blog_update.php:7 Stack trace: #0 {main} thrown in C:\xampp\htdocs\blog_update.php on line 7 となります。 validateはどう定義すればいいでしょうか??? 度々申し訳ございません。 ご回答の程、宜しくお願い申し上げます。

    • ベストアンサー
    • kouzou250
    • PHP
    • 回答数2
  • biginTransaction();でエラー??

    いつも大変お世話になり誠にありがとうございます。 私は、おっしゃる通り、理解しながらやっていないです。 でも、自分なりに理解できるところは為になっております。 皆様のおかげです。 標記の件。 エラーメッセージは ( ! ) Fatal error: Uncaught Error: Call to undefined method PDO::biginTransaction() in /srv/www/htdocs/blog.php on line 30 ( ! ) Error: Call to undefined method PDO::biginTransaction() in /srv/www/htdocs/blog.php on line 30 です。 どう直せばいいでしょうか? どうか教えてください。 宜しくお願い申し上げます。      記 <?php require_once('dbc.php'); class Blog extends Dbc { protected $table_name = 'blog'; //カテゴリー名を表示 //引数:数字 //返り値:カテゴリーの文字列 public function setCategoryName($category) { if ($category == '1') { return '日常'; } elseif ($category == '2') { return '非日常'; } else { return 'その他'; } } public function blogCreate($blogs) { $sql = "INSERT INTO blog(title,content,category,publish_status) VALUES (:title, :content, :category, :publish_status)"; $dbh = $this->dbConnect(); $dbh->biginTransaction(); try { $stmt = $dbh->prepare($sql); $stmt->bindValue(':title', $blogs['title'], PDO::PARAM_STR); $stmt->bindValue(':content', $blogs['content'], PDO::PARAM_STR); $stmt->bindValue(':category', $blogs['category'], PDO::PARAM_INT); $stmt->bindValue(':publish_status', $blogs['publish_status'], PDO::PARAM_INT); $stmt->bindValue(':id', $blogs['id'], PDO::PARAM_INT); $stmt->execute(); $stmt->commit(); echo 'ブログを投稿しました!'; } catch (PDOException $e) { $dbh->rollBack(); exit($e); } function blogUpdate($blogs) { $sql = "UPDATE $this->table_name SET title = :title, content = :content, category = :category, publish_status = :publish_status Where id = :id"; $dbh = dbConnect(); $dbh->biginTransaction(); try { $stmt = $dbh->prepare($sql); $stmt->bindValue(':title', $blogs['title'], PDO::PARAM_STR); $stmt->bindValue(':content', $blogs['content'], PDO::PARAM_STR); $stmt->bindValue(':category', $blogs['category'], PDO::PARAM_INT); $stmt->bindValue(':publish_status', $blogs['publish_status'], PDO::PARAM_INT); $stmt->bindValue(':id', $blogs['id'], PDO::PARAM_INT); $stmt->execute(); $stmt->commit(); echo 'ブログを更新しました!'; } catch (PDOException $e) { $dbh->rollBack(); exit($e); } } function blogUpdate($blogs){ } //ブログのバリデーション function blogValidate($blogs) { if (empty($blogs['title'])) { exit('タイトルを入力してください。'); } if (mb_strlen($blogs['title']) > 191) { exit('タイトルは191文字以下にしてください。'); } if (empty($blogs['content'])) { exit('本文を入力してください。'); } if (empty($blogs['category'])) { exit('カテゴリーは必須です。'); } if (empty($blogs['publish_status'])) { exit('公開ステータスは必須です。'); } } } } ?>

    • ベストアンサー
    • kouzou250
    • PHP
    • 回答数6
  • 使いやすい、良いエディターの入手方法。

    いつもお世話になり誠にありがとうございます。 標記の件。 私もいいエディターを使いたいです。 どうしたら入手できるでしょうか??? どうか教えてください。 宜しくお願い申し上げます。

    • ベストアンサー
    • kouzou250
    • PHP
    • 回答数3
  • コードの終端にエラー???php

    いつもお世話になり誠にありがとうございます。 標記の件。 エラーメッセージは次です。 ( ! ) Parse error: syntax error, unexpected end of file in /srv/www/htdocs/blog.php on line 98 コードは97行になります。 どうか教えてください。 アドバイスを宜しくお願い申し上げます。      記 <?php require_once('dbc.php'); class Blog extends Dbc { protected $table_name = 'blog'; //カテゴリー名を表示 //引数:数字 //返り値:カテゴリーの文字列 public function setCategoryName($category) { if ($category == '1') { return '日常'; } elseif ($category == '2') { return '非日常'; } else { return 'その他'; } } public function blogCreate($blogs) { $sql = "INSERT INTO blog(title,content,category,publish_status) VALUES (:title, :content, :category, :publish_status)"; $dbh = $this->dbConnect(); $dbh->biginTransaction(); try { $stmt = $dbh->prepare($sql); $stmt->bindValue(':title', $blogs['title'], PDO::PARAM_STR); $stmt->bindValue(':content', $blogs['content'], PDO::PARAM_STR); $stmt->bindValue(':category', $blogs['category'], PDO::PARAM_INT); $stmt->bindValue(':publish_status', $blogs['publish_status'], PDO::PARAM_INT); $stmt->bindValue(':id', $blogs['id'], PDO::PARAM_INT); $stmt->execute(); $stmt->commit(); echo 'ブログを投稿しました!'; } catch (PDOException $e) { $dbh->rollBack(); exit($e); } function blogUpdate($blogs) { $sql = "UPDATE $this->table_name SET title = :title, content = :content, category = :category, publish_status = :publish_status Where id = :id"; $dbh = dbConnect(); $dbh->biginTransaction(); try { $stmt = $dbh->prepare($sql); $stmt->bindValue(':title', $blogs['title'], PDO::PARAM_STR); $stmt->bindValue(':content', $blogs['content'], PDO::PARAM_STR); $stmt->bindValue(':category', $blogs['category'], PDO::PARAM_INT); $stmt->bindValue(':publish_status', $blogs['publish_status'], PDO::PARAM_INT); $stmt->bindValue(':id', $blogs['id'], PDO::PARAM_INT); $stmt->execute(); $stmt->commit(); echo 'ブログを更新しました!'; } catch (PDOException $e) { $dbh->rollBack(); exit($e); } } function blogUpdate($blogs){ } //ブログのバリデーション function blogValidate($blogs) { if (empty($blogs['title'])) { exit('タイトルを入力してください。'); } if (mb_strlen($blogs['title']) > 191) { exit('タイトルは191文字以下にしてください。'); } if (empty($blogs['content'])) { exit('本文を入力してください。'); } if (empty($blogs['category'])) { exit('カテゴリーは必須です。'); } if (empty($blogs['publish_status'])) { exit('公開ステータスは必須です。'); } } ?>

    • ベストアンサー
    • kouzou250
    • PHP
    • 回答数3
  • validateがおかしいみたいです。

    いつもお世話になり誠にありがとうございます。 標記の件。 2つコードを提示します。 何故、エラーになるのかを教えてください。 エラー警告は ( ! ) Fatal error: Uncaught Error: Call to undefined function blogValidate() in /srv/www/htdocs/blog_create.php on line 5 ( ! ) Error: Call to undefined function blogValidate() in /srv/www/htdocs/blog_create.php on line 5 です。 度々すみません。 アドバイスの程、宜しくお願い申し上げます。          記 //ブログのバリデーション function blogValidate($blogs) { if (empty($blogs['title'])) { exit('タイトルを入力してください。'); } if (mb_strlen($blogs['title']) > 191) { exit('タイトルは191文字以下にしてください。'); } if (empty($blogs['content'])) { exit('本文を入力してください。'); } if (empty($blogs['category'])) { exit('カテゴリーは必須です。'); } if (empty($blogs['publish_status'])) { exit('公開ステータスは必須です。'); } } } } ?> <?php require_once('blog.php'); $blogs = $_POST; $blog = new blog; $blog->blogValidate($blogs); この行がエラーになります。 $blog->blogCreate($blogs); ?> <p><a herf="/">戻る</a></p>

    • ベストアンサー
    • kouzou250
    • PHP
    • 回答数6
  • 突如!接続エラー!?php

    いつもお世話になりありがとうございます。 標記の件。 下記のエラーがlocalhost/index.php/で出ました。 接続失敗SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo for $host failed: ���̂悤�ȃz�X�g�͕s���ł��B 大変恐縮ではございますが、下記のコードを吟味して頂けないでしょうか? 度々申し訳ございません。 宜しくお願い申し上げます。      記 index.php <?php require_once ('blog.php'); $blog = new Blog(); $blogData = $blog->getAll(); function h($s){ return htmlspecialchars($s, ENT_QUOTES,"UTF-8"); } ?> <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>ブログ一覧</title> </head> <body> <h2>ブログ一覧</h2> <p><a href="/form.html">新規作成</a></p> <table> <tr> <th>タイトル</th> <th>カテゴリー</th> <th>投稿日時</th> <tr> <?php foreach ($blogData as $column): ?> <tr> <td><?php echo h($column['title']) ?></td> <td><?php echo h($blog->setCategoryName($column['category'])) ?></td> <td><?php echo h($column['post_at']) ?></td> <td><a href="/detail.php?id=<?php echo $column['id'] ?>">詳細</a></td> <td><a href="/update_form.php?id=<?php echo $column['id'] ?>">編集</a></td> <td><a href="/blog_delete.php?id=<?php echo $column['id'] ?>">削除</a></td> </tr> <?php endforeach; ?> </body> </html> env.php <?php define('DB_HOST','localhost'); define('DB_NAME','blog_app'); define('DB_USER','blog_user'); define('DB_PASS','**********'); ?> dbc.php <?php require_once('env.php'); class Dbc { protected $table_name; protected function dbConnect() { $host = DB_HOST; $dbname = DB_NAME; $user = DB_USER; $pass = DB_PASS; $dsn = 'mysql:host=$host;dbname=$dbname;blog_app;charset=utf8'; try { $dbh = new \PDO($dsn, $user, $pass, [ \PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION, ]); } catch (PDOException $e) { echo '接続失敗' . $e->getMessage(); exit(); }; return $dbh; } public function getAll() { $dbh = $this->dbConnect(); //①SQLの準備 $sql = "SELECT * FROM $this->table_name"; //②SQLの実行 $stmt = $dbh->query($sql); //③SQLの結果を受け取る $result = $stmt->fetchall(\PDO::FETCH_ASSOC); return $result; $dbh = null; } public function setCategoryName($category) { if ($category == '1') { return '日常'; } elseif ($category == '2') { return '非日常'; } else { return 'その他'; } } public function getById($id) { if (empty($id)) { exit('idが不正です。'); } $dbh = $this->dbConnect(); $sql = "SELECT * FROM $this->table_name"; $stmt = $dbh->prepare("SELECT * FROM $this->table_name Where id = :id"); $stmt->bindValue(':id', (int)$id, \PDO::PARAM_INT); $stmt->execute(); $result = $stmt->fetch(\PDO::FETCH_ASSOC); if (!$result) { exit('本文がありません。'); } return $result; } public function delete($id) { if (empty($id)) { exit('idが不正です。'); } $dbh = $this->dbConnect(); $stmt = $dbh->prepare("DELETE FROM $this->table_name Where id = :id"); $stmt->bindValue(':id', (int)$id, \PDO::PARAM_INT); $stmt->execute(); echo 'ブログを削除しました!'; return $result; } } ?> <p><a href="/">戻る</a></p> 大変、お手数をおかけします。 どうか教えてください。 宜しくお願い申し上げます。

    • ベストアンサー
    • kouzou250
    • PHP
    • 回答数4
  • ステートメントが必要です。???

    いつも大変お世話になり誠にありがとうございます。 標記の件。 下記のコードの一番下の}にステートメントが必要です と出ます。 どういう意味でしょうか? どうか教えてください。 宜しくお願い申し上げます。      記 function blogUpdate($blogs) { $sql = "UPDATE $this->table_name SET title = :title, content = :content, category = :category, publish_status = :publish_status Where id = :id"; $dbh = $this->dbConnect(); $dbh->biginTransaction(); try { $stmt = $dbh->prepare($sql); $stmt->bindValue(':title', $blogs['title'], PDO::PARAM_STR); $stmt->bindValue(':content', $blogs['content'], PDO::PARAM_STR); $stmt->bindValue(':category', $blogs['category'], PDO::PARAM_INT); $stmt->bindValue(':publish_status', $blogs['publish_status'], PDO::PARAM_INT); $stmt->bindValue(':id', $blogs['id'], PDO::PARAM_INT); $stmt->execute(); $stmt->commit(); echo 'ブログを更新しました!'; } catch (PDOException $e) { $dbh->rollBack(); exit($e); } }

    • ベストアンサー
    • kouzou250
    • PHP
    • 回答数4