試作プログラムを完成させて、「さぁ本番」と本プログラムを作ったら、なぜか動かない!! UPDATE文で、データベースの第1レコードの部分書き換えを行うもので、まず下記のような短い試作プログラムで正常に作動の確認をしました。 <?php $namae= "仮名"; $mail= "略"; try {$pdo = new PDO('mysql:dbname=ab002118;host=127.0.0.1', 'ab002118', 'パス'); } catch (PDOException $e) { exit('データベースに接続できませんでした。' . $e->getMessage()); } $stmt = $pdo->query('SET NAMES utf8'); if (!$stmt) { $info = $pdo->errorInfo(); exit($info[2]); } $sql = 'update soukai set colname=:namae,colmead=:mail,tens=now() where id=1'; $stmt = $pdo -> prepare($sql); $stmt->bindParam(':namae', $namae, PDO::PARAM_STR); $stmt->bindParam(':mail', $mail, PDO::PARAM_STR); $stmt->execute(); ?> これをこのまま用いて、同じサーバー上の別のテーブル名のデータベースで、29フィールドのものに適用するプログラムを作成しました。既存のデータを読み込んだ上で修正し(データの読み出しは正常に行われてます。参考に既存データはhttps://www.telepac.jp/reizouko/databunseki/etsuranreizoukodata.php)POST送信させ差し替える仕組みです。しかし、UPDATE文が全く作動しなくなりました。似たような体験のある方、居られないでしょうか。 <?php header('X-Frame-Options: DENY'); session_start(); if($_SESSION['token'] == $_POST['token']){ $_SESSION['token'] = session_id(); include('php/check.php'); if(!empty($_POST)){ list($regist_id,$namae,$kaiinbangou,(中略),$blank4 ) = store_data(); }}else{die("正規の画面からご利用ください"); } try {$pdo = new PDO('mysql:dbname=ab002118;host=127.0.0.1', 'ab002118', 'パス'); } catch (PDOException $e) { exit('データベースに接続できませんでした。' . $e->getMessage()); } $stmt = $pdo->query('SET NAMES utf8'); if (!$stmt) { $info = $pdo->errorInfo(); exit($info[2]); } $sql ="UPDATE reizouko_data SET namae=:namae,kaiinbangou=:kaiinbangou,mail=:mail,reizoukopass=:reizoukopass,koukai=:koukai,nittei=:nittei,denchi=:denchi,denchibikou=:denchibikou,denchicost=:denchicost,denchipower=:denchipower,(中略)blank4=:blank4,tens=NOW() WHERE regist_id=1"; $stmt = $pdo->prepare($sql); $stmt->bindParam(':regist_id',$regist_id,PDO::PARAM_STR); $stmt->bindParam(':namae',$namae,PDO::PARAM_STR); $stmt->bindParam(':kaiinbangou',$kaiinbangou,PDO::PARAM_STR); (途中)略 $stmt->bindParam(':blank4',$blank4,PDO::PARAM_STR); //実行 $stmt->execute(); ?>
PHP