質問するログイン新規登録

回答編集履歴

3

補足

2017/06/04 13:00

投稿

mpyw
mpyw

スコア5223

answer CHANGED
@@ -55,6 +55,7 @@
55
55
  }
56
56
 
57
57
  // MySQLに関わる処理全体をtry~catchで括る
58
+ // (原則的には個々の関数の中にtry~catchを書いてはいけない)
58
59
  try {
59
60
 
60
61
  $db = connectDb();

2

modify

2017/06/04 13:00

投稿

mpyw
mpyw

スコア5223

answer CHANGED
@@ -3,6 +3,16 @@
3
3
  - 2回接続してるのが無駄
4
4
  - `mysqli_report()`でエラーモードを設定しないと`mysql_sql_exception`は投げられないのでtry~catchが無意味
5
5
 
6
+ ```sql
7
+ CREATE TABLE `news`(
8
+ `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
9
+ `active` tinyint(1) NOT NULL DEFAULT 1,
10
+ `text` varchar(255) NOT NULL DEFAULT ''
11
+ ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
12
+
13
+ INSERT INTO `news`(`text`) VALUES('sample_text1'),('sample_text2');
14
+ ```
15
+
6
16
  ```php
7
17
  <?php
8
18
 
@@ -67,7 +77,7 @@
67
77
 
68
78
  <ul>
69
79
  <?php foreach ($news as $new): ?>
70
- <li><?=h($new['news'])?></li>
80
+ <li><?=h($new['text'])?></li>
71
81
  <?php endforeach; ?>
72
82
  </ul>
73
83
  ```

1

テーブル名

2017/06/04 12:57

投稿

mpyw
mpyw

スコア5223

answer CHANGED
@@ -29,7 +29,7 @@
29
29
  */
30
30
  function fetchActiveNews(mysqli $db)
31
31
  {
32
- $sql = 'SELECT * FROM sample_database WHERE active="1"';
32
+ $sql = 'SELECT * FROM news WHERE active="1"';
33
33
  return $db->query($sql)->fetch_all(MYSQLI_ASSOC);
34
34
  }
35
35