如何在准备好的语句中绑定“ DEFAULT”和“ NULL”?

时间:2018-07-23 15:11:43

标签: php mysqli prepared-statement

在准备好的语句中,我试图将elasticSearchService.search([indices: Book, types: Book, score: true], { "match" { "author"(query: "keen", "fuzziness": 4, "prefix_length": 1) } }) DEFAULT附加到查询中,但这不起作用。我查询了其他答案,但找不到明确的答案。这是我的代码:

NULL

2 个答案:

答案 0 :(得分:2)

这实际上是一个XY Problem-您不绑定{% assign items = cart.items | sort: 'title' %},甚至在大多数情况下也不会绑定DEFAULTalthough you can)。

您的问题是您使用的速记 NULL未指定列,因此您必须为其中的全部添加数据:

INSERT


如果您指定要使用的哪些列,则可以省略任何默认设置(例如,自动递增的INSERT INTO tblProjects VALUES (?, ? ...); )。同样,您想要成为PRIMARY KEY的任何列都很有可能具有NULL,在这种情况下,您也将其忽略。

DEFAULT NULL

注意:可以在查询中仅使用SQL关键字,如下所示:

INSERT INTO tblProjects (col2, col4 ...) VALUES (?, ? ...)

...但是我不会说这是最佳实践

答案 1 :(得分:0)

您可以使用COALESCE功能:

INSERT INTO tblProjects (col1, col2, col3) VALUES (coalesce(?,DEFAULT(col1)), ?, ?)

在这种情况下,如果将绑定变量分配为NULL,则将使用为col1指定的默认值代替NULL。

请注意,NULL根本不是问题。您可以使用分配给绑定变量的NULL执行查询,它们将被正确解释。