重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

初めまして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に詳しい方々、お力添えお願いします。
初心者でもわかりやすい解答をお願いします。

A 回答 (1件)

まずプリペアドステートメントの理解度を上げる必要がありそうですね



http://www.php.net/manual/ja/pdo.prepared-statem …

またphpの基本文法も怪しそうです
「.」でつないでいるつもりなのでしょうか?そのわりにクォーテーションの
使い方が変です
    • good
    • 0
この回答へのお礼

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

お礼日時:2012/11/26 01:49

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!