PHP / MYSQL UPDATE没有写入数据库

时间:2014-03-13 15:55:13

标签: php sql sql-update

我正在尝试使用常量Guest来更新数据库。我有一个包含日期的数组,并设置了一个for循环来循环它们,查询应该修改一行,其中日期与数组键AND {19}的starttime匹配: 00。但是它没有修改数据库。我哪里错了?

$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";

4 个答案:

答案 0 :(得分:2)

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

您还应该确保$ dateMonthYearArr [$ count]是SQL安全=)。

答案 1 :(得分:1)

修复查询:

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

$dateMonthYearArr是一个php数组,所以你应该以适当的方式将它连接到你的字符串。

答案 2 :(得分:0)

这实际上是

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

是比较,因为&#39;或&#39;是一个运算符,它的行为类似于IF语句。所以你没有正确设置字符串。

尝试使用:

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

答案 3 :(得分: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');