【发布时间】:2016-10-17 06:34:41
【问题描述】:
我正在尝试以下查询,它只是没有将任何值存储到表中。
列 Tienda 设置为唯一。 pk是Codigo,查询是:
$asignaciones = $db->query("
INSERT INTO `Asignaciones` (
`Codigo` , `Tienda` , `Apertura` , `Cierre_20_00` , `Cierre_20_30` , `Cierre_21_00` , `Sanitarios` , `Barrer_Mat` , `Barrer_Vesp` , `Trapear_Mat` , `Trapear_Vesp` , `Limpiar_Ventanales_y_Vitrinas` , `Fecha` , `Encargada` , `Supervisora` )
VALUES (NULL , '$Tienda', '$Apertura', '$Cierre_20_00', '$Cierre_20_30', '$Cierre_21_00', '$Sanitarios', '$Barrer_Mat', '$Barrer_Vesp', '$Trapear_Mat', '$Trapear_Vesp', '$Limpiar_Ventanales_y_Vitrinas', '$Fecha', '$Encargada', '$Supervisora'
WHERE Tienda = '$MiTienda')
ON DUPLICATE KEY UPDATE `Apertura`= '$Apertura', `Cierre_20_00` = '$Cierre_20_00', `Cierre_20_30` ='$Cierre_20_30', `Cierre_21_00`= '$Cierre_21_00', `Sanitarios` ='$Sanitarios', `Barrer_Mat`= '$Barrer_Mat', `Barrer_Vesp`='$Barrer_Vesp' , `Trapear_Mat`='$Trapear_Mat' , `Trapear_Vesp` ='$Trapear_Vesp', `Limpiar_Ventanales_y_Vitrinas`='$Limpiar_Ventanales_y_Vitrinas' , `Fecha`= '$Fecha', `Encargada`='$Encargada' , `Supervisora`= '$Supervisora'");
当前行值为:
Codigo|Tienda|Apertura|Cierre_20_00|Cierre_20_30|Cierre_21_00|Sanitarios|Barrer_Mat|Barrer_Vesp|Trapear_Mat|Trapear_Vesp|Limpiar_Ventanales_y_Vitrinas|Fecha |Encargada|Supervisora
2 |1010 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0000-00-00 | 0 | 0
我的查询有什么问题? $MiTienda 是 = 1010 。我通过将所有其他值添加到 4 和带有今天日期的日期进行测试,但它没有更新。我在想我是否应该放弃代码栏并制作铁达PK?
【问题讨论】:
-
您的查询是否执行?看来mysql在你用过的地方不支持“WHERE”。看来,这只是一个糟糕的语法
-
WHERE 用于 SELECT、UPDATE 和 DELETE,而不是用于 INSERT。
-
好的,让我尝试从那里删除它。我可以把它放在 ON DUPLICATE 的末尾吗?
-
这里不应该有
SETKEY UPDATE Apertura = '$Apertura',所以KEY UPDATE SET Apertura = '$Apertura',也许它是可选的?不确定,但我一直都是这样做的…… -
感谢您如此努力地做-1,并不是说它可以帮助我解决我的问题,而且以前的建议都没有奏效。如果其他人可以贡献我会非常感激。