gpt4 book ai didi

php - INSERT 语句是否有等效的 PDO::ATTR_ORACLE_NULLS ?

转载 作者:行者123 更新时间:2023-11-29 14:39:08 25 4
gpt4 key购买 nike

我有一个函数,可以从一个数据库读取数据,格式化并重新组合它们,然后将它们插入到另一个数据库中。但是,目标数据库应拒绝某些列缺少数据的任何行。我想要做到这一点的方法是在目标表中的相关列上放置 NOT NULL 约束,以便当这些值为 NULL 时 INSERT 语句不会被执行。

但是,在内爆格式化的源数据数组时,我对每个值都使用引号,以便能够立即将它们与 sql INSERT 字符串的其余部分连接起来。我原本计划使用 PDO::ATTR_ORACLE_NULLS 属性在 INSERT 上将所有空字符串(源数据中的 NULL)转换为 NULL,但现在发现这似乎只影响 SELECT 查询的结果,而不影响 INSERT 语句。有谁知道一种优雅而快速的方法来告诉 MySQL 或 PDO 对象将 INSERT 语句中的所有空字符串视为 NULL?

最佳答案

Oracle 将空字符串视为 NULL。这不是 MySQL 所做的事情。你可以做array_map(function ($element) { return $element ? $element : NULL; }, $arguments);然而,在传递给 PDO 之前要进行替换。 (或 $element === '' ? NULL : $element 取决于您想要如何处理 0'0' )

关于php - INSERT 语句是否有等效的 PDO::ATTR_ORACLE_NULLS ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8340473/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com