【问题标题】:use INSERT INTO VALUES WHERE ON DUPLICATE KEY UPDATE使用 INSERT INTO VALUES WHERE ON DUPLICATE KEY UPDATE
【发布时间】: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 的末尾吗?
  • 这里不应该有SET KEY UPDATE Apertura = '$Apertura', 所以KEY UPDATE SET Apertura = '$Apertura', 也许它是可选的?不确定,但我一直都是这样做的……
  • 感谢您如此努力地做-1,并不是说它可以帮助我解决我的问题,而且以前的建议都没有奏效。如果其他人可以贡献我会非常感激。

标签: php mysql insert where


【解决方案1】:

事实证明,我的变量并没有从上一页的表单中推送出去。这就是为什么它什么也没存储。我用 print_r($_SESSION);在带有上述查询的页面中进行查找。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-11-17
    • 2011-01-29
    • 2017-02-21
    • 2017-01-11
    • 2016-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多