PHP
1<?php 2 3define('DB_HOST', 'localhost'); 4define('DB_USER', 'user'); 5define('DB_PASSWD', 'passwd'); 6define('DB_NAME', 'dbname'); 7 8define('HTML_CHARACTER_SET', 'UTF-8'); 9define('DB_CHARACTER_SET', 'UTF8'); 10 11$date = date('Y-m-d H:i:s'); 12 13$err_msg = array(); 14$data = array(); 15$result = ''; 16 17//db接続 18$link = get_db_connect(); 19 20//-------------POST通信での処理----------------------- 21if ($_SERVER['REQUEST_METHOD'] === 'POST') { 22 23 if (isset($_POST['name']) === TRUE && mb_strlen($_POST['name']) <= 20 && $_POST['name'] !== '') { 24 25 $name = $_POST['name']; 26 } else { 27 28 $err_msg[] = '名前は0文字、または20文字以上では登録できません!(23行)'; 29 } 30 31 if (isset($_POST['comment']) === TRUE && mb_strlen($_POST['comment']) <= 100 && $_POST['comment'] !== '') { 32 33 $comment = $_POST['comment']; 34 } else { 35 36 $err_msg[] = 'コメントが空白、0文字、または100文字以上では登録できません!(31行)'; 37 } 38 39 if (count($err_msg) === 0) { 40 41 insert_sql($name,$comment,$date); 42 } 43} 44//------------ここまでがPOST通信での処理-------------- 45 46$sql = "SELECT name, comment, date FROM bulletin_table"; 47 48if ($result = mysqli_query($link, $sql)) { 49 50 while ($row = mysqli_fetch_assoc($result)) { 51 52 $data[] = $row; 53 } 54} else { 55 56 $err_msg[] = '実行に失敗しました。'; 57} 58 59mysqli_free_result($result); 60close_db_connect($link); 61 62 63//DB接続関数の作成 64function get_db_connect() { 65 66 //コネクション取得 67 if (!$link = mysqli_connect(DB_HOST, DB_USER, DB_PASSWD, DB_NAME)) { 68 69 die('error: '.mysqli_connect_error()); 70 } 71 72 //文字コードセット 73 mysqli_set_charset($link, DB_CHARACTER_SET); 74 75 return $link; 76} 77 78//DB切断関数の作成 79function close_db_connect($link) { 80 81 mysqli_close($link); 82} 83 84//テーブルへデータを挿入 85function insert_sql ($name,$comment,$date) { 86 87 $sql = ''; 88 $sql = "INSERT INTO bulletin_table(name, comment, date) 89 VALUES ('".$name."','".$comment."','".$date."')"; 90 91 return mysqli_query($link,$sql); 92} 93 94?> 95<!DOCTYPE html> 96<html lang="ja"> 97<head> 98 <meta charset="utf-8"> 99 <title>ひとこと掲示板(ユーザー定義関数ver)</title> 100 <style> 101 .border { 102 103 padding-bottom: 10px; 104 border-bottom: solid 2px #000000; 105 } 106 </style> 107</head> 108<body> 109 <h1>ひとこと掲示板</h1> 110 <div class="border"> 111 <form method="post"> 112 <label>名前:<input type="text" name = "name" value=""></label> 113 <label>コメント:<input type="text" name = "comment" value=""></label> 114 <input type="submit" value="投稿"> 115 </form> 116 <?php foreach ($err_msg as $value) { ?> 117 <p><?php print $value; ?></p> 118 <?php } ?> 119 </div> 120 <ul> 121 <?php foreach ($data as $value) { ?> 122 <li><?php print htmlspecialchars($value['name'],ENT_QUOTES,"UTF-8"); ?> 123 <?php print htmlspecialchars($value['comment'],ENT_QUOTES,"UTF-8"); ?> 124 <?php print htmlspecialchars($value['date'],ENT_QUOTES,"UTF-8"); ?></li> 125 <?php } ?> 126 </ul> 127</body> 128</html> 129``` 130簡単な掲示板を作成しております。 131 132データベース接続 133テーブルへデータを挿入(INSERT) 134テーブルからデータを取得(SELECT) 135データベース切断 136「名前」の入力値をチェック 137「コメント」の入力値をチェック 138HTMLとして表示する文字をHTMLエンティティに変換する 139 140上記の処理をユーザー定義関数を利用し行いたいのですがデータをテーブルへ挿入する関数を作りましたが機能しません。 141returnで変数に代入するなど試しましたがエラーはなくなりませんでした。 142 143わかりやすいreturnの説明や機能しない場合のvar_dump()を使う位置などアドバイスをいただけると助かります。