我正在我的脚本中执行更新查询。它返回true但更新查询不更新表。这是查询。我在这里缺少什么?
$connection = db::factory('mysql');
$query='update bookings SET date="'.$date.'",time_from="'.$time_from.'",time_to="'.$time_to.'",status="'.$status.'" where booker_id="'.$booker_id.'"';
if(mysql_query($query)) {
echo "success"; exit;
return true;
} else {
echo "fail"; exit;
return false;
}
这是表结构
CREATE TABLE IF NOT EXISTS `bookings` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`date` date NOT NULL,
`time_from` time NOT NULL,
`time_to` time NOT NULL,
`status` varchar(250) NOT NULL,
`booker_id` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=20 ;
答案 0 :(得分:0)
试试这个:
$query='update `bookings` SET `date`="'.$date.'",`time_from`="'.$time_from.'",`time_to`="'.$time_to.'",`status`="'.$status.'" where `booker_id`="'.$booker_id.'"';
$rs = mysql_query($query) or die(mysql_error());
if($rs) {
echo "success"; exit;
return true;
} else {
echo "fail"; exit;
return false;
}
希望它会有所帮助
答案 1 :(得分:0)
并且`列的名称,因为你有列名日期和日期是列的数据类型和mysql中保留的keywork使用这个:
$query='update `bookings` SET `date`="'.$date.'",`time_from`="'.$time_from.'",`time_to`="'.$time_to.'",`status`="'.$status.'" where `booker_id`="'.$booker_id.'"';
答案 2 :(得分:0)
它返回true,因为没有错误 但Mysql没有找到任何更新的条目,因为没有条件符合您的条件 您应该返回整个查询以进行检查,并尝试使用phpMyAdmin手动执行它 日期栏周围的`+1。
答案 3 :(得分:0)
$booker_id
的值是多少,因为我怀疑它是成功更新但实际上没有匹配记录。打印出$query
并查看发送到数据库的确切内容
答案 4 :(得分:0)
mysql_query()只是在查询成功运行后才返回true。我建议更新/修改行数以检查此查询是否更新了任何行。因此,在执行更新查询后立即使用mysql_affected_rows()。 注意:mysql_ *查询已被删除,因此请尝试使用PDO,mysqli
中的任何一个