PDO使用$ _POST变量执行问题

时间:2012-08-27 15:10:31

标签: php forms pdo

当我尝试使用$_POST变量向我的数据库插入内容时,我遇到了麻烦。

目前这就是我设置它的方式。当我将这些变量传递给它时,它可以工作。注意我在工作示例中将所有内容都设置为1.

$video_id = 1;
$user_id = 1;
$session_id = 1;
$user_rating = 1;

$conn = new PDO("mysql:host=$hostname;dbname=db_name", $username, $password);
    $q = $conn->prepare('INSERT INTO video_rating (rating, video_id, user_id, sessionid) VALUES (?, ?, ?, ?)');

$q->execute(array($user_rating, $video_id, $user_id, $user_rating));

然而,当我使用我的POST变量时

$video_id = $_POST['video_id'];
$user_id = $_POST['user_id'];
$session_id = $_POST['session_id'];
$user_rating = $_POST['user_rating'];

并运行相同的PDO执行,它不起作用。

我的表单看起来像这样。

<form id="rate-form" method="post" enctype="multipart/form-data">
<input class="auto-submit-star" type="radio" name="user-rating" value="1" title="Very poor"/>
<input class="auto-submit-star" type="radio" name="user-rating" value="2" title="Poor"/>
<input class="auto-submit-star" type="radio" name="user-rating" value="3" title="OK"/>
<input class="auto-submit-star" type="radio" name="user-rating" value="4" title="Good"/>
<input class="auto-submit-star" type="radio" name="user-rating" value="5" title="Very Good"/>
<span id="hover-test" style="margin:0 0 0 15px;" class="rate-text"></span>
<input type="hidden" name="video_id" value="251"/>
<input type="hidden" name="user_id" value="3"/>
<input type="hidden" name="session_id" value="1"/>
<input type="hidden" name="rate_form" />  
</form>

你能看到我可能会忽略的东西,为什么它不起作用。

1 个答案:

答案 0 :(得分:2)

您的SQL正在寻找:

 $user_rating = $_POST['user_rating'];

您的HTML包含:

 <input class="auto-submit-star" type="radio" name="user-rating" ...

我假设一个或另一个是拼写错误 - 当您生成SQL时,$user_rating将以NULL形式出现,并且您的表不允许该字段中的空条目。