###前提・実現したいこと
いつも大変お世話になっております。
SQLSTATE[42000]: Syntax error or access violation:が
発生して困っております。
しかも、UPDATEは実行されており、データは更新します。
しかし、上記エラーが発行されて・・・
SQL文が間違えていれば、更新しないと思うので、完全に
頭打ちで・・・
解決策をご存知のかた、ご教授くださいませ。
よろしくお願いします。
###発生している問題・エラーメッセージ
SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-5' at line 1
###該当のソースコード
$valEditcd = filter_input(INPUT_POST,"editcd"); //エディット $sql = "update t_kigyo_cmnt set actman = :actman, actday = :actday, kubun = :kubun, content = :content, updatetime = :updatetime "; $sql .= "where id = :id"; $aql = "select * from t_kigyo_cmnt where id = :id for update"; $valActman = filter_input(INPUT_POST,"actman".$valEditcd); $valActday = filter_input(INPUT_POST,"actday".$valEditcd); $valKubun = filter_input(INPUT_POST,"kubun".$valEditcd); $valContent = filter_input(INPUT_POST,"content".$valEditcd); try { // 静的プレースホルダを指定 $pdo -> setAttribute(PDO::ATTR_EMULATE_PREPARES, false); // エラー発生時に例外を投げる $pdo -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); //トランザクション開始 $pdo -> beginTransaction(); //for update (LOCK) $stmt1 = $pdo -> prepare($aql); $stmt1 -> bindValue(':id', $valEditcd,PDO::PARAM_INT); $stmt1 -> execute(); // update $stmt = $pdo -> prepare($sql); $stmt -> bindValue(':actman', $valActman ,PDO::PARAM_STR); $stmt -> bindValue(':actday', $valActday ,PDO::PARAM_STR); $stmt -> bindValue(':kubun', $valKubun ,PDO::PARAM_INT); $stmt -> bindValue(':content', $valContent ,PDO::PARAM_STR); $stmt -> bindValue(':updatetime', date('Y/m/d H:i:s'),PDO::PARAM_STR); $stmt -> bindValue(':id', $valEditcd,PDO::PARAM_INT); $stmt -> execute(); //$stmt->debugDumpParams(); $stmt -> closeCursor(); //コミット $pdo -> commit(); } catch (PDOException $e){ //ロールバック $pdo ->rollBack(); die($e->getMessage()); }
###補足情報(言語/FW/ツール等のバージョンなど)
POSTの中身
$valActman : string(12) "山田太郎"
$valActday : string(10) "2016/12/26"
$valKubun : string(1) "2"
$valContent : string(149) "ほんまにそうですよね。更新してんじゃん なんでやねん 不思議 ほんま できたわ あかん"
debugDumpParams();の結果
SQL: [135] update t_kigyo_cmnt set actman = :actman, actday = :actday, kubun = :kubun, content = :content, updatetime = :updatetime where id = :id Params: 6 Key: Name: [7] :actman paramno=0 name=[7] ":actman" is_param=1 param_type=2 Key: Name: [7] :actday paramno=1 name=[7] ":actday" is_param=1 param_type=2 Key: Name: [6] :kubun paramno=2 name=[6] ":kubun" is_param=1 param_type=1 Key: Name: [8] :content paramno=3 name=[8] ":content" is_param=1 param_type=2 Key: Name: [11] :updatetime paramno=4 name=[11] ":updatetime" is_param=1 param_type=2 Key: Name: [3] :id paramno=5 name=[3] ":id" is_param=1 param_type=1
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/12/29 14:59
2016/12/29 15:16