複数の簡易掲示板を作成しています。
一つ目の掲示板はエラーもなく動作しているのですが、
二つ目の掲示板を作成したら動作はしているのですが、下記のエラーがあります。
一つ目の掲示板はうまく動作しているのに二つ目は何故エラーになるのか分からないです。
コードにまだ慣れていなくどこに記載をしたら良いのか分からないです。
宜しくお願いします。
エラー:Array ([0] => 00000[1] =>[2] => )
【コード追記・修正箇所】
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
die ('エラー:' . $e->getMessage() . "\n" . $e->getTraceAsString());
}
$stmt = $db->prepare("
INSERT INTO bbs1 (name, title, body, date )
VALUES (?, ?, ?, now() )"
);
(write1.php)
PHP
1 2<?php 3 4 // エラー表示 5error_reporting(E_ALL); 6ini_set('display_errors', '1'); 7 8 // データの受け取り 9 $name = $_POST['name']; 10 $title = $_POST['title']; 11 $body = $_POST['body']; 12 13 //必須項目チェック(名前か本文が空ではないか?) 14 if ($name == '' || $body == ''){ 15 header('Location: fot.php'); // fot.phpへ移動 16 exit(); //終了 17} 18 //データベースに接続 19 $dsn = 'mysql:host=localhost;dbname=db11;charset=utf8'; 20 $user = 'db11user'; 21 $password = '1111'; // 設定したパスワード 22 23try { 24 $db = new PDO($dsn, $user, $password); 25 $db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); 26 $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 27} catch (PDOException $e) { 28 die ('エラー:' . $e->getMessage() . "\n" . $e->getTraceAsString()); 29} 30 31 $stmt = $db->prepare(" 32 INSERT INTO bbs1 (name, title, body, date ) 33 VALUES (?, ?, ?, now() )" 34 ); 35 36 //パラメータを割り当て 37 $stmt->bindParam(1, $name, PDO::PARAM_STR); 38 $stmt->bindParam(2, $title, PDO::PARAM_STR); 39 $stmt->bindParam(3, $body, PDO::PARAM_STR); 40 41 //クエリの実行 42 $stmt->execute(); 43 44 //fot.phpに戻る 45 header('Location: fot.php'); 46 exit(); 47 48?>
(fot.html)
PHP
1 2<!-- ここから掲示板1 --> 3<?php 4 // 1ページに表示されるコメントの数 5 $num = 3; 6 7 //データベースに接続 8 $dsn = 'mysql:host=localhost;dbname=db11;charset=utf8'; 9 $user = 'db11user'; 10 $password = '1111'; //DBパスワード 11 12 //ページ数が指定されているとき 13 $page = 0; 14 if (isset($_GET['page']) && $_GET['page'] > 0) { 15 $page = intval($_GET['page']) -1; 16 } 17 18try { 19 $db = new PDO($dsn, $user, $password); 20 $db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); 21 //プリペアドステートメントを作成 22 $stmt = $db->prepare( 23 "SELECT * FROM bbs ORDER BY date DESC LIMIT 24 :page, :num" 25 ); 26 //パラメータを割り当て 27 $page = $page * $num; 28 $stmt->bindParam(':page', $page, PDO::PARAM_INT); 29 $stmt->bindParam(':num', $num, PDO::PARAM_INT); 30 //クエリの実行 31 $stmt->execute(); 32} catch(PDOException $e){ 33 echo "エラー:" . $e->getMessage(). "\n" . $e->getTraceAsString(); 34} 35 36?> 37 <div id="nav-drawer"><!-- ハンバーガー --> 38 <input id="nav-input" type="checkbox" class="nav-unshown"> 39 <label id="nav-open" for="nav-input"> 40 <img src="img/a.jpg" class="fot"> 41 </label><span></span> 42 <label class="nav-unshown" id="nav-close" for="nav-input"></label> 43 <div id="nav-content"> 44 <div align="center"> 45 <img src="img/a.jpg" width="550" height="400"> 46 <br>コメント入力 47 48 <?php 49 while ($row = $stmt->fetch()): 50 $title = $row['title'] ? $row['title'] : '(無題)'; 51?> 52 <p>名前:<?php echo $row['name'] ?></p> 53 <p>タイトル:<?php echo $title ?></p> 54 <p><?php echo nl2br($row['body'], false) ?></p> 55 <p><?php echo $row['date'] ?></p> 56<?php 57 endwhile; 58 59 //ページ数の表示 60 try { 61 //プリペアドステートメント作成 62 $stmt = $db->prepare("SELECT COUNT(*) FROM bbs"); 63 //クエリ 64 $stmt->execute(); 65 } catch (PDOException $e){ 66 echo "エラー:" . $e->getMessage(). "\n" . $e->getTraceAsString(); 67 } 68 69 //コメントの件数を取得 70 $comments = $stmt->fetchColumn(); 71 //ページ数を計算 72 $max_page = ceil($comments / $num); 73 echo '<p>'; 74 for ($i = 1; $i <= $max_page; $i++){ 75 echo '<a href="fot.php?page=' . $i . '">' . $i . 76 '</a> '; 77 } 78 echo '</p>'; 79?> 80 </span> 81 82<span class="form"> 83 <form action="write.php" method="post"> 84 <p>名前:<input type="text" name="name"></p> 85 <p>タイトル:<input type="text" name="title"></p> 86 <textarea name="body"></textarea> 87 <p><input type="submit" value="書き込む"> <input type="reset" value="リセット"></p> 88 </form> 89 </span><!-- form --> 90 </div><!-- nav-content終了 --> 91 </div><!-- ハンバーガー --> 92 93<!-- ここから掲示板2 --> 94 95<?php 96 // 1ページに表示されるコメントの数 97 $num = 3; 98 99 //データベースに接続 100 $dsn = 'mysql:host=localhost;dbname=db11;charset=utf8'; 101 $user = 'db11user'; 102 $password = '1111'; //DBパスワード 103 104 //ページ数が指定されているとき 105 $page = 0; 106 if (isset($_GET['page']) && $_GET['page'] > 0) { 107 $page = intval($_GET['page']) -1; 108 } 109 110try { 111 $db = new PDO($dsn, $user, $password); 112 $db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); 113 //プリペアドステートメントを作成 114 $stmt = $db->prepare( 115 "SELECT * FROM bbs1 ORDER BY date DESC LIMIT 116 :page, :num" 117 ); 118 //パラメータを割り当て 119 $page = $page * $num; 120 print_r($db->errorInfo()); 121 $stmt->bindParam(':page', $page, PDO::PARAM_INT); 122 $stmt->bindParam(':num', $num, PDO::PARAM_INT); 123 //クエリの実行 124 $stmt->execute(); 125} catch(PDOException $e) { 126 echo "エラー:" . $e->getMessage(). "\n" . $e->getTraceAsString(); 127} 128?> 129 130 <div id="nav-drawer1"><!-- ハンバーガー --> 131<input id="nav-input1" type="checkbox" class="nav-unshown1"> 132 <label id="nav-open1" for="nav-input1"> 133 <img src="img/a.jpg" class="fot"> 134 </label><span></span> 135 <label class="nav-unshown1" id="nav-close1" for="nav-input1"></label> 136 <div id="nav-content1"> 137<img src="img/a.jpg" width="550" height="400"> 138 <br>コメント入力 139 140<?php 141 while ($row = $stmt->fetch()): 142 $title = $row['title'] ? $row['title'] : '(無題)'; 143?> 144 <p>名前:<?php echo $row['name'] ?></p> 145 <p>タイトル:<?php echo $title ?></p> 146 <p><?php echo nl2br($row['body'], false) ?></p> 147 <p><?php echo $row['date'] ?></p> 148<?php 149 endwhile; 150 151 //ページ数の表示 152 try { 153 //プリペアドステートメント作成 154 $stmt = $db->prepare("SELECT COUNT(*) FROM bbs1"); 155 //クエリ 156 $stmt->execute(); 157 } catch (PDOException $e){ 158 echo "エラー:" . $e->getMessage(). "\n" . $e->getTraceAsString(); 159 } 160 161 //コメントの件数を取得 162 $comments = $stmt->fetchColumn(); 163 //ページ数を計算 164 $max_page = ceil($comments / $num); 165 echo '<p>'; 166 for ($i = 1; $i <= $max_page; $i++){ 167 echo '<a href="fot.php?page=' . $i . '">' . $i . 168 '</a> '; 169 } 170 echo '</p>'; 171?> 172 </span> 173 174 175 <p class="name1">この料理へのコメントはこちらから!!</p> 176 177<span class="form"> 178 <form action="write1.php" method="post"> 179 <p>名前:<input type="text" name="name"></p> 180 <p>タイトル:<input type="text" name="title"></p> 181 <textarea name="body"></textarea> 182 <p><input type="submit" value="書き込む"> <input type="reset" value="リセット"></p> 183 </form> 184 </span><!-- form --> 185 </div><!-- nav-content終了 --> 186 </div><!-- ハンバーガー --> 187 188
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/10/14 12:38
退会済みユーザー
2018/10/14 15:30
2018/10/14 21:27
退会済みユーザー
2018/10/14 23:08
2018/10/15 03:28
2018/10/15 11:34
2018/10/15 12:20 編集
2018/10/15 12:57
2018/10/15 13:03
2018/10/15 22:13