0

我已经使用INSERT INTO了数百次,但已经有一段时间了,我一直在为这个而疯狂:

//Database Connection

$movieID = 41154;
$userID = 15;
$vote = 'yes';

$postVote = mysql_query("INSERT INTO votes (movieID, userID, yesNo, $vote) VALUES ('$movieID', '$userID', 1, 1)");

我能够成功连接到数据库并从votes表中获取数据,但由于某种原因,我在使用INSERT INTO.

表中存在以下列votemovieIDuserIDyesNoyes

关于我可以做些什么不同的想法?我必须忽略一些非常明显的东西。

4

2 回答 2

0

... or die(mysql_error()正如 Marc B 指出的那样,使用, 引导我解决我的问题。这显示了我无法设置重复键的错误...我忘记auto increment了表的主键votes。因此,它一直在尝试创建一个我每次尝试voteID的.1INSERT INTO votes

$postVote = mysql_query(...) or die(mysql_error());

这解决了我的挑战。然而,Tim G 指出 usingPDO是一种比mysql_query(). 通过一点阅读,Tim G 对 PDO 的看法可能是正确的。基于PHPEveryday's Tutorial,我可以这样重写我的插入语句:

// 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));

与 using不同or die()PDO也有不同的处理错误和异常的方式。您可以在PHPHash.org 的教程:MySQL 的 PDO - 错误处理中了解更多信息。

于 2012-10-04T14:48:31.100 回答
-1

INSERT INTO votes (movieID,userID,yesNo,$vote)

并替换$votevote

于 2016-03-15T10:50:58.160 回答