2014-03-13 53 views
0

我想用一個常量Guest來更新數據庫。我有一個包含日期的數組,並設置了一個for循環來遍歷它們,查詢應該修改一行,其日期與陣列鍵ANDstarttime的19:00:00相匹配。但它不會修改數據庫。我哪裏錯了?PHP/MYSQL UPDATE不寫入數據庫

$size1 = sizeof($dayOfTheWeek) - 1; 


for ($count = 0; $count <= $size1; $count++) { 


$query = "UPDATE rota SET title=Guest WHERE date = '$dateMonthYearArr[$count]' AND starttime = '19:00:00'" or die;    
$dayresult = mysql_query($query); 

echo "".$dateMonthYearArr[$count]."</br>"; 
} 

echo "Complete"; 

回答

2
$query = "UPDATE rota SET title='Guest' WHERE date = '" . $dateMonthYearArr[$count] . "' AND starttime = '19:00:00'"; 

你也應該確保$ dateMonthYearArr [$ count]的SQL安全=)。

1

修復查詢:

$query = "UPDATE rota SET title='Guest' 
      WHERE date = '" . $dateMonthYearArr[$count] . "' AND starttime = '19:00:00'";    
$dayresult = mysql_query($query); 

$dateMonthYearArr是一個PHP數組,所以你應該以適當的方式串連它到你的字符串。

+0

好的。沒有看到那個。 – Quixrick

+0

謝謝@Quixrick。 – Jhn

0

這實際上

$query = "UPDATE rota SET title=Guest WHERE date = '$dateMonthYearArr[$count]' AND starttime = '19:00:00'" or die; 

是一個比較,因爲「或」是一個運營商和它的行爲像一個IF語句。所以你沒有正確設置字符串。

嘗試它:

$query = "UPDATE rota SET title = 'Guest' WHERE date = '" . $dateMonthYearArr[$count] . "' AND starttime = '19:00:00'"; 
mysql_query($query) or die('Cannot update title'); 
0

我刪除了我的其他答案,並結合了其他兩個海報的要點。請不要給我獎勵這點。我只是結合他們[更好]的答案。

<?php 

$query = "UPDATE rota SET title = 'Guest' WHERE date = '".$dateMonthYearArr[$count]."' AND starttime = '19:00:00'"; 
mysql_query($query) or die('Cannot update title');