前提・実現したいこと
PHPでmysqlを使った掲示板を作っています。
INSERTでデータを入力するところで以下のエラーメッセージが発生しました。
二日ほどこれで止まっています。お分かりの方がおられましたらご教示ください。
発生している問題・エラーメッセージ
Parse error: syntax error, unexpected T_STRING in ・・・ on line 59
該当のソースコード
<?php $named=$_POST['content']; $commented=$_POST['content2']; $deleted=$_POST['number']; $edited=$_POST['edit']; $editnumber=$_POST['content3']; $passed=$_POST['pass']; $pass2=$_POST['pass2']; $pass3=$_POST['pass3']; $timed=date('Y/n/d H:i:s'); //データベース接続 $dsn='*****'; $user='******'; $password='********'; $pdo=new PDO($dsn,$user,$password,array(PDO::ATTR_ERRMODE=> PDO::ERRMODE_WARNING)); //テーブル作成 $sql="CREATE TABLE IF NOT EXISTS mission_4_1" ."(" ."id INT auto_increment," ."name char(32)," ."comment TEXT," ."time DATETIME," ."pass INT," ."primary key(id)" .");"; $stmt=$pdo->query($sql); //テーブル作成確認 $sql1='SHOW TABLES'; $result=$pdo->query($sql1); foreach($result as $row){ echo $row[0]; echo'<br>'; } echo"<hr>"; //テーブル 中身 確認 $sql2='SHOW CREATE TABLE mission_4_1'; $result=$pdo->query($sql2); foreach($result as $row1){ echo $row1[1]; } echo"<hr>"; $sql3=$pdo->prepare("INSERT INTO mission_4_1(id,name,comment,time,pass) VALUES(:id,:name,:comment,:time,:pass)"); $sql3->bindParam(':name',$name,PDO::PARAM_STR); $sql3->bindParam(':comment',$comment,PDO::PARAM_STR); $sql3->bindValue(':time',$time,PDO::PARAM_STR); $sql3->bindValue(':pass',$pass,PDO::PARAM_INT); $name=$named; $comment=$commented; $time=$timed; $pass=$passed; 59行目 $sql3 -> execute(); if(!empty($pass3)){ $sql7="SELECT*FROM mission_4_1 WHERE id=$edited"; $stmt=$pdo->query($sql7); foreach($stmt as $row){ if($row['id']==$edited and $row['pass']==$pass3){ $id="$edited"; $name="$named"; $comment="$commented"; $sql4='update mission_4_1 set name=:name,comment=:comment where id=:id'; $stmt=$pdo->prepare($sql4); $stmt->bindParam(':name',$name,PDO::PARAM_STR); $stmt->bindParam(':comment',$comment,PDO::PARAM_STR); $stmt->bindParam(':id',$id,PDO::PARAM_INT); $stmt->execute(); } } } elseif(!empty($pass2)){ $sql8="SELECT*FROM mission_4_1 WHERE id=$deleted"; $stmt=$pdo->query($sql8); foreach($stmt as $row){ if($row['id']==$deleted){ $id="$deleted"; $sql5='delete from mission_4_1 where id=:id'; $stmt=$pdo->prepare($sql5); $stmt->bindParam(':id',$id,PDO::PARAM_INT); $stmt->execute(); } } } $sql6='SELECT*FROM mission_4_1'; $stmt=$pdo->query($sql6); $results=$stmt->fetchAll(); foreach($results as $row2){ //$rowの中にはテーブルのカラム名が入る echo $row2['id'].','; echo $row2['name'].','; echo $row2['comment'].','; echo $row2['time'].'<br>'; } ?>
試したこと
bindParamやbindValueに問題があるのだろうかと思って調べてみたのですが解決策は分かりませんでした。
調べたことはエラーで検索をかけてみる、bindValue、bindParamの使い方など基本的なことを調べました。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答3件
あなたの回答
tips
プレビュー