データサーバー読み込みはしてあります
$where=[]; if(isset($_POST['id']) && $_POST['id'] != ""){ $where[] = "( id = '" . $_POST['id']."')"; $id1 = $_POST['id']; } 省略 $where = implode("AND", $where); $sql = "SELECT * FROM 〇 WHERE" .$where; $stmt = $pdo->prepare($sql); $stmt ->execute(); echo "~検索結果~"; ?> foreach($stmt as $〇){ $id1=$〇['id']; $tokun1=$〇['〇']; $kon1=$〇['〇']; $touroku1=$〇['touroku']; $codo1=$〇['codo']; $name1=$〇['name']; $mail1=$〇['〇']; $tel1=$〇['〇']; $yobi1=$〇['yobi']; ?> <tr> <td><?=$id1?></td><td><?=$tokun1?></td><td><?=$kon1?></td><td><?=$touroku1?></td><td><?=$codo1?></td><td><?=$name1?></td><td><?=$mail1?></td><td><?=$tel1?></td><td><?=$yobi1?></td> </tr> <?php
今このような構造エラーが出てしまいます。
Uncaught PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax;
どういった書き方をすればいいですか?
id,name,codo,touroku
このどれか一つでも入力できていれば検索できるようになってます。
echo $sql;
で生成されたSQL文を出力して頂けますでしょうか。
すいません。エラーでecho ができません。
$sql = "SELECT * FROM cms WHERE" .$where;
echo $sql;
exit;
で表示されませんか?
ありがとうございます。
SELECT * FROM cms WHERE
これが表示されました!!
つまり、現在発行されているSQL文は
SELECT * FROM cms WHERE
という訳です。
これは構文として成り立っていない為、エラーが発生している状況です。
現在は$whereが存在しない場合でも、SQL文にWHEREが記載されている状況ですので
まずはその状況を改善する必要があります。
回答2件
あなたの回答
tips
プレビュー