2012-08-27 25 views
1

當我嘗試使用$_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

'$ _POST'的'var_dump()'產生了什麼? – Matt

+0

請停止使用模擬的準備。 –

回答

2

你的SQL正在尋找:

$user_rating = $_POST['user_rating']; 

你的HTML包括:

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

我想一個或另一個是一個錯字 - 正在生成的SQL時,$user_rating通過爲即將到來NULL,並且您的表不允許該字段中的空條目。

+0

這是一個錯字,感謝您的支持。但是這仍然沒有解決db中沒有任何內容出現的問題。 – Jako

+0

在這種情況下,是否嘗試檢查數據庫是否在插入時返回了錯誤? – andrewsi

+0

我也可能會從表單中失去'enctype =「multipart/form-data」'。 – andrewsi