... or die(mysql_error()
Marc Bが指摘したように、を使用すると、私の問題につながります。これにより、重複キーを設定できなかったというエラーが表示されました...テーブルauto increment
の主キーを忘れました。votes
したがって、 を作成しようとするたびvoteID
にを作成しようとし続けました。1
INSERT INTO votes
$postVote = mysql_query(...) or die(mysql_error());
これで私の課題は解決しました。PDO
ただし、Tim G は、 を使用する方が を使用するよりもはるかに優れたアプローチであると指摘していmysql_query()
ます。少し読んでみると、Tim G はおそらく PDO について正しいでしょう。PHPEveryday's Tutorialに基づいて、Insert ステートメントを次のように書き直すことができます。
// database connection
$conn = new PDO("mysql:host=$dbhost;dbname=$dbname",$dbuser,$dbpass);
//set variables
$movieID = 41154;
$userID = 15;
$vote = 'yes';
//query/insert statement
$sql = "INSERT INTO votes (movieID,userID,yesNo,$vote) VALUES (:movieID,:userID, :yesNo, :$vote)";
$q = $conn->prepare($sql);
$q->execute(array(':movieID'=>$movieID,
':userID'=>$userID)),
':yesNo'=>1)),
':$vote'=>1));
を使用する代わりに、or die()
エラーPDO
と例外を処理する別の方法もあります。詳細については、PHPHash.org のチュートリアル: PDO for MySQL - エラー処理 を参照してください。