我做了一個表單來更新sql。我需要更新後,使其通過發送兩個值到數據庫功能:SQL Update只更新1行,當查詢中有2時
「是」進入featured
和date("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
列已更新。
我哪裏錯了?
您錯誤的地方是使用陳舊的'mysql_query'界面。你有什麼理由必須使用它嗎?如果沒有,至少你應該使用[不難學習]的PDO(http://net.tutsplus.com/tutorials/php/why-you-should-be-using-phps-pdo-for -database存取/)。我不知道你是否[正確地躲過](http://bobby-tables.com/php)這裏的價值觀,你應該非常小心這種事情。 – tadman