2013-11-23 29 views
0

我做了一個表單來更新sql。我需要更新後,使其通過發送兩個值到數據庫功能:SQL Update只更新1行,當查詢中有2時

「是」進入featureddate("F j, Y, g:i a")date_featured

它的工作原理,但只更新featured列,而不是date_featured

MYSQL看起來是這樣的:

功能VARCHAR(25)latin1_swedish_ci NULL:無缺省值:無 date_featured的datetime NULL:沒有默認:0000-00-00 00:00:00

而且我的繼承人與DB細節代碼省略

if(isset($_POST['update'])) 
{ 
$dbhost = 'XXX'; 
$dbuser = 'XXX'; 
$dbpass = 'XXX'; 
$conn = mysql_connect($dbhost, $dbuser, $dbpass); 
if(! $conn) 
{ 
    die('Could not connect: ' . mysql_error()); 
} 

$id = $_POST['id']; 
$featured = "yes"; 
$datefeatured = date("F j, Y, g:i a"); 
$sql = "UPDATE pins SET featured = '$featured', date_featured = '$datefeatured' WHERE id ='$pinDetails->id'"; 

mysql_select_db('XXX'); 
$retval = mysql_query($sql, $conn); 
if(! $retval) 
{ 
    die('Could not update data: ' . mysql_error()); 
} 
echo "Updated data successfully\n"; 
echo "Featured on $datefeatured."; 
mysql_close($conn); 
} 
else 
{ 

HTML:

<form method="post" action="<?php $_PHP_SELF ?>"> 
<table width="400" border="0" cellspacing="1" cellpadding="2"> 
<tr> 
<td>Feature 
<input name="id" type="hidden" id="id"> 
<input name="update" type="submit" id="update" value="Change"> 
</td> 
</tr> 
</table> 
</form> 

當我點擊提交按鈕會更新,並顯示回波,但是當我檢查數據庫只有featured列已更新。

我哪裏錯了?

+0

您錯誤的地方是使用陳舊的'mysql_query'界面。你有什麼理由必須使用它嗎?如果沒有,至少你應該使用[不難學習]的PDO(http://net.tutsplus.com/tutorials/php/why-you-should-be-using-phps-pdo-for -database存取/)。我不知道你是否[正確地躲過](http://bobby-tables.com/php)這裏的價值觀,你應該非常小心這種事情。 – tadman

回答

2

請確保您的日期格式爲日期('Y-m-d')

+0

這很簡單+改變SQL列類型。 –