2

mySql データベースに PDO 更新を実行しようとしています。エラーは表示されませんが、テーブルも更新されません。

これが私が使用しているコードです。ユーザーは、ドロップダウン リストから POST 値を選択します。

 if (isset($_POST['changeLearningStyle'])){
 if (isset($_POST['learning'])){
 $var6 = $_POST['learning'];
 $stmt8 = $db->prepare("UPDATE users SET learningStyle = $var6 WHERE username = ?  AND     learningStyle = ?");
 $stmt8->execute(array($id, $learningStyle));
 $alert = '<div id="title1">Your learning style have been successfully updated</div>';
 }
} /**And the HTML looks  like this: **/
<form name="changeStyle" method="POST">
<div id="resetLearningStyle">
<div id="tab6">
 <h4 id="black">Learning Style</h4>
 <h5>Current Style: <?php echo($learningStyle) ?></h5>
 <select id="learning" name="learning" class="span3">
  <option value="">Select Style</option>
  <option value="Auditory">Auditory</option>
  <option value="Visual">Visual</option>
  <option value="Persuasive">Persuasive</option>
  <option value="Active">Active</option>    
  </select>
  </div>
  <input class="btn btn-inverse" type="submit" name="changeLearningStyle" value="Reset    Learning Style">
  </form>
 /**Table Structure **/

-- テーブルのテーブル構造users

  CREATE TABLE `users` (
 `id` int(20) NOT NULL auto_increment,
 `fname` varchar(200) NOT NULL,
 `lname` varchar(200) NOT NULL,
 `username` varchar(200) NOT NULL,
 `password` varchar(200) NOT NULL,
 `country` varchar(200) NOT NULL,
 `rootLanugage` varchar(200) NOT NULL,
 `learningStyle` varchar(200) NOT NULL,
 `language` varchar(200) NOT NULL,
 `icon` varchar(200) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=31 ;

前もって感謝します!

4

1 に答える 1

4

エラーを表示するには、DB に接続した直後に次のコード行を追加します。

$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
于 2013-05-14T07:40:12.937 に答える