• 締切済み

複数条件検索のWHERE句の使い方がわかりません。

初めましてphp,mysql共に初心者です。 現在以下のような問題で頭を抱えています。 映画のデータベースを使った映画の検索システムを考えています。 フィールドはid,sakuhinmei,cast1,cast2,cast3,kantokuの6つです。 検索方法として作品名やキャストなどを一つのフォームを用いて検索する複数条件を用いたシステムを考えています。 そこで以下のようなソースを作りました。 <?php $dsn='mysql:dbname=testdb;host=localhost'; $user='root'; $password='koro0401'; $dbh=new PDO($dsn,$user,$password); $dbh->query('SET NAMES UTF-8'); $kensakuwords=$_POST['kensakuwords']; $sql="SELECT * FROM eiga WHERE (sakuhinmei=.'$kensakuwords'.) OR (cast1=.'$kensakuwords'.) OR (cast2=.'$kensakuwords'.) OR (cast3 =.'$kensakuwords'.) OR (kantoku=.'$kensakuwords'.)"; $stmt=$dbh->prepare($sql); $stmt->execute(); while(1) { $rec=$stmt->fetch(PDO::FETCH_ASSOC); if($rec==false) { break; } print$rec['id']; print$rec['sakuhinmei']; print$rec['cast1']; print$rec['cast2']; print$rec['cast3']; print$rec['kantoku']; print'<br/>'; } $dbh=null; ?> 実行してみるとエラーはでないのですが、何も表示されません。いろいろネットで調べてためしてはみたのですが、自分では何が違うのかわかりませんでした。 どうかphp、mysqlに詳しい方々、お力添えお願いします。 初心者でもわかりやすい解答をお願いします。

みんなの回答

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

まずプリペアドステートメントの理解度を上げる必要がありそうですね http://www.php.net/manual/ja/pdo.prepared-statements.php またphpの基本文法も怪しそうです 「.」でつないでいるつもりなのでしょうか?そのわりにクォーテーションの 使い方が変です

ms0616
質問者

お礼

正直なところphpもあまり理解できていません。いろんなソースを見て分からなくなってしまいました。 ただソースはWHERE句の部分以外は本からもってきているので大丈夫かなと思っていました。 プリアドステートメントという言葉もわからずここで質問しているなんて恐縮です。 もう少し参考書などで勉強したいと思います。 素早いご回答ありがとうございました。

関連するQ&A