2012-01-20 14 views
0

PHPでのデータベースアクセスを処理するためにPDOを使い始めました。この単純なPHPコードで何が問題になっていますか?

私は、次のコードを試してみました:

$dbh = new PDO("mysql:host=$kdbhost;dbname=$kdbname",$kdbuser,$kdbpw); 
$sth = $dbh->("INSERT INTO enquiries (name, email, message) VALUES(:name, :email, :message);"); 

とDreamweaverは私の2行目に構文エラーを与える、と私はなぜ私の人生のために把握することはできませんか?

注:私はthis nettuts tutorialに続き、メソッド名のない例を示しました。

答えて

3

あなたはこれを実行する必要があります。あなたは$dbhオブジェクトのメソッドを呼び出していないので、

$sth = $dbh->prepare("INSERT INTO enquiries (name, email, message) VALUES(:name, :email, :message);"); 

$dbh->(は構文エラーです。このケースでは、クエリを準備するprepare()を使用したい、あなたがで終わるので:それはだ場合(準備とyourMethodを交換し

$sth = $dbh->yourMethod("INS... 

$sth = $dbh->prepare(...); 
+0

を準備? - しかし、どのようにこの構文が使われているのかは[ここ](http://net.tutsplus.com/tutorials/php/why-you-should-be-using-phps-pdo-for-database-access/) - 特に名前付きプレースホルダセクション? –

+2

明らかにチュートリアルで間違いがある場合は、これを修正するために著者に電子メールを送ることができます。メソッド名はPHPでは構文エラーではありません。ハックして動作させることはできません。 –

+0

@sakfaそれは私が思ったものです! - 奇妙なことに、彼らはそれを複数回やっているのですが、ネットツールは通常かなり良いです。 –

0

あなたはあなたの呼び出しでメソッドが欠落しています必要な方法)、またはPDOインスタンスから提供される他の方法を使用することができます。

0

あなたは

$sth = $dbh->準備関数名を逃した私は、メソッド名を持たないことは奇妙に聞こえたと思った("INSERT INTO enquiries (name, email, message) VALUES(:name, :email, :message);");

関連する問題