回答編集履歴

1 修正

s8_chu

s8_chu score 14272

2017/01/09 17:24  投稿

SQL文が間違っているのではないかと考えました。
以下のように行うとどうでしょうか。
```PHP
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
const HOST = "localhost";
const USER_NAME = "root";
const PASSWORD = "password";
const DB_NAME = "DBMAMe";
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
   $fname = $_POST['fname'];
   $lname = $_POST['lname'];
   $email = $_POST['email'];
   $gender = $_POST['gender'];
   $age = $_POST['age'];
   $comments = $_POST['comments'];
   $password = $_POST['password'];
   if (!empty($fname) &&
       !empty($lname) &&
       !empty($email) &&
       !empty($gender) &&
       !empty($age) &&
       !empty($comments) &&
       !empty($password)
   ) {
       mysqli_report(MYSQLI_REPORT_ALL);
       try {
           $dbc = new mysqli(HOST, USER_NAME, PASSWORD, DB_NAME);
           mysqli_set_charset($dbc, 'utf8');
           $stmt = $dbc->prepare("INSERT INTO `tabtaba`(`fname`, `lname`, `email`, `gender`, `age`, `comments`, `password`) VALUES (?,?,?,?,?,?,?)");
           $stmt = $dbc->prepare("INSERT INTO `table`(`fname`, `lname`, `email`, `gender`, `age`, `comments`, `password`) VALUES (?,?,?,?,?,?,?)");
           $stmt->bind_param('sssssss', $fname, $lname, $email, $gender, $age, $comments, $password);
           $stmt->execute();
           $registered = mysqli_affected_rows($dbc);
           echo $registered . "row is affected, everything worked fine!";
       } catch (Exception $exception) {
           echo $exception->getMessage();
           exit();
       }
   } else {
       echo "<P style='color:red;'>ERROE: you left some values in blank!</p>";
   }
} else {
   echo "<h2>Please complete the form...</h2>";
}
?>
<!DOCTYPE html>
<html lang="ja">
<head>
   <title>タイトル</title>
</head>
<body>
<form action="" method="post">
   <label>First Name:
       <input type="text" name="fname" size="20" maxlength="50">
   </label>
   <label>Last Name:
       <input type="text" name="lname" size="20" maxlength="50">
   </label>
   <label>Email:
       <input type="text" name="email" size="40" maxlength="50">
   </label>
   <fieldset>Gender:
       <label>Male
           <input type="radio" name="gender" value="M">
       </label>
       <label>Famale
           <input type="radio" name="gender" value="F">
       </label>
   </fieldset>
   <label>Age:
       <select name="age">
           <option value="0~29">Under 30</option>
           <option value="30~60">Betwen 30 and 60</option>
           <option value="60+">Over 60</option>
       </select>
   </label>
   <label>Comments:
       <textarea name="comments" rows="3" cols="40" maxlength="200"></textarea>
   </label>
   <label>Password:
       <input type="password" name="password" maxlength="50">
   </label>
   <p><input type="submit" name="submit" value="Submit"/></p>
</form>
</body>
</html>
```

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る