使用INSERT INTO VALUES WHERE ONPLICATE KEY UPDATE

时间:2016-10-17 06:34:41

标签: php mysql insert where

我正在尝试以下查询,它只是不会将任何值存储到表中。

列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以及与今天日期的日期进行测试,但它没有更新。我想知道我是否应该删除Code Column并制作Tienda PK?

1 个答案:

答案 0 :(得分:0)

事实证明,我的变量并没有从上一页的表单中推出。这就是它没有储存的原因。我用过print_r($ _ SESSION);在上面有查询的页面中查找。