PDOを使用しMySQLに作成したフォームデータの登録を行いたいのですが、データ内容がMySQLに保存されません。
まず、MySQLへ[text_db]というDB名の中に、
[hako]というカラムを作成。
その中に[text1~text3]までのvarchar(50)のフィールドをそれぞれ作成しておく。
この状態全く同じコードで、フィールド数が2つだけならうまくいくのですが、
VALUES(?,?,?)");
$st->execute(array($_POST['text1'],$_POST['text2'], $_POST['text3']));
ここの部分を3つ以上に増やす(?と$_POST['text3'])とデータの保存がされなくなります。
フィールド2つだけの状態の時とコードは変わらないため、
このコードでMySQL自体には接続はできております。
何度試しても理由が全く分からないのですが、
どなたか3つ以上のフィールドで保存される方法をどなたかお優しい方お教えくださいますと非常に助かります。
php
1<form action="text.php" method="post"> 2<input type="text" class="text" name="text1"> 3<br> 4<input type="text" class="text" name="text2"> 5<br> 6<input type="text" class="text" name="text3"> 7<br> 8<input type="submit" value= "送信" 9class="check" > 10</form> 11 12 13<?php 14 $pdo = new PDO("mysql:dbname=text_db;host=localhost", "ユーザー名", "パスワード"); 15 16 $pdo->query('SET NAMES utf8'); 17 $st = $pdo->prepare("INSERT INTO hako VALUES(?,?,?)"); 18 19$st->execute(array($_POST['text1'],$_POST['text2'], $_POST['text3'])); 20?> 21
追記
正常なパターンといってもそのままになりますが…
記述しておりますように、ただたんに?とtext3がないだけです。
カラムの[hako]はテーブル名としてお考えください。
何度も新規に正しいものを作成しておりますが、何度試しても二つなら一度で成功しますが、二つ以上になると保存がされません。
エラーも一切表示がされないため何も分からない状態です。
3つ以上のフィールドで保存される方法をどなたかお優しい方お教えくださいますと非常に助かります。
php
1<form action="text.php" method="post"> 2<input type="text" class="text" name="text1"> 3<br> 4<input type="text" class="text" name="text2"> 5<br> 6<input type="submit" value= "送信" 7class="check" > 8</form> 9 10 11<?php 12 $pdo = new PDO("mysql:dbname=text_db;host=localhost", "ユーザー名", "パスワード"); 13 14 $pdo->query('SET NAMES utf8'); 15 $st = $pdo->prepare("INSERT INTO hako VALUES(?,?)"); 16 17$st->execute(array($_POST['text1'],$_POST['text2'])); 18?>
回答1件
あなたの回答
tips
プレビュー