【问题标题】:how to use nullif() in a query in a php form如何在 php 表单的查询中使用 nullif()
【发布时间】:2021-03-10 11:28:59
【问题描述】:

我尝试在 PostgreSQL 13 和 php 形式的表中导入 csv 文件(初学者)。
表中有两种外键整数类型,一种可以为空。因此,当我导入文件时,我会收到其中一个的常见消息 invalid input syntax for type integer
this post之后,NullIf() 函数似乎是一个简单的解决方案。

我找不到正确的使用方法:

$sql = "INSERT INTO activite.us (numus, gidgeo, gidaxe)
        VALUES ('".$getData[0]."','".$getData[10]."', NULLIF('".$getData[11]."', '') " ;

外键是最后一个变量。

  • 我尝试用 NULL 替换第二个参数;
  • 我尝试了'NULLIF("...")' 和其他一些错误组合。

如何解决这个问题? 谢谢。

【问题讨论】:

  • (可能)旁注:不要使用字符串插值或连接将值获取到 SQL 查询中。这很容易出错,并且可能使您的程序容易受到 SQL 注入攻击。使用参数化查询。
  • 这取决于语法错误实际上是什么,所以请在您的问题中显示整个错误消息。很确定NULLIF 不是答案。最佳做法是创建一个包含所有 varchar 字段的表并导入其中,然后在传输到最终表之前/之前进行清理。

标签: php postgresql nullif


【解决方案1】:

(即使 PDO 会更好,)答案是

NULLIF('".$getData[11]."', '')::integer)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多