Mysql sql插入和检查输入值不为空

Mysql sql插入和检查输入值不为空,mysql,sql,null,Mysql,Sql,Null,我有一个插入语句,它将插入文本框中的值。现在工作正常,我想通过使用sql查询检查文本框不能为空 我的插入语句如下所示: INSERT INTO guestpasstypes(guestPasstype_Name)values('" + tbPassType.Text + "')" 使用您用来从文本框中获取文本的任何语言来查看它是空的还是空的。大多数语言都有这些检查。(例如:php;isempty())此外,如果不需要空格,也可以使用trim。使用任何语言从文本框中获取文本,查看文本是空的还是空

我有一个插入语句,它将插入文本框中的值。现在工作正常,我想通过使用sql查询检查文本框不能为空

我的插入语句如下所示:

INSERT INTO guestpasstypes(guestPasstype_Name)values('" + tbPassType.Text + "')"

使用您用来从文本框中获取文本的任何语言来查看它是空的还是空的。大多数语言都有这些检查。(例如:php;isempty())此外,如果不需要空格,也可以使用trim。

使用任何语言从文本框中获取文本,查看文本是空的还是空的。大多数语言都有这些检查。(例如:php;isempty())此外,如果不需要空格,也可以使用trim。

将guestPasstype_Name设置为非空,并确保MySQL在SQL一致性模式下运行。以下可能会起作用:

INSERT INTO guestpasstypes(guestPasstype_Name)values(
    IF('" + tbPassType.Text + "'='', NULL,'" + tbPassType.Text+"')"

使guestPasstype_Name不为NULL,并确保MySQL在SQL一致性模式下运行。以下可能会起作用:

INSERT INTO guestpasstypes(guestPasstype_Name)values(
    IF('" + tbPassType.Text + "'='', NULL,'" + tbPassType.Text+"')"

我也同意您应该避免调用该SQL,因为它可能会受到注入攻击,但是如果出于某种原因,您确实需要这样做,那么这应该可以做到:

"INSERT INTO guestpasstypes(guestPasstype_Name)
  select '" + tbPassType.Text + "' from dual where '" + tbPassType.Text + "' <> '';"
“插入到guestPasstype(guestPasstype\u名称)
从双变量中选择“+tbPassType.Text+””,其中“+tbPassType.Text+””

我也同意您应该避免调用该SQL,因为它可能会受到注入攻击,但是如果出于某种原因,您确实需要这样做,那么这应该可以做到:

"INSERT INTO guestpasstypes(guestPasstype_Name)
  select '" + tbPassType.Text + "' from dual where '" + tbPassType.Text + "' <> '';"
“插入到guestPasstype(guestPasstype\u名称)
从双变量中选择“+tbPassType.Text+””,其中“+tbPassType.Text+””

我可以看到两种解决方案

  • 在生成sql查询之前,请选中“tbPassType.Text”(推荐)
  • 在“guestpasstypes”表中创建检查约束,如下所示:

    INSERT INTO guestpasstypes(guestPasstype_Name)values('" + tbPassType.Text + "')"
    
    ALTER TABLE dbo.guestpasstypes添加约束 CK_guestPasstype_Name检查((LEN(guestPasstype_Name))>(0)))


(给出的示例是针对MSSQL的,但我希望MySQL也有约束)

我可以看到两种解决方案

  • 在生成sql查询之前,请选中“tbPassType.Text”(推荐)
  • 在“guestpasstypes”表中创建检查约束,如下所示:

    INSERT INTO guestpasstypes(guestPasstype_Name)values('" + tbPassType.Text + "')"
    
    ALTER TABLE dbo.guestpasstypes添加约束 CK_guestPasstype_Name检查((LEN(guestPasstype_Name))>(0)))


(给出的示例是针对MSSQL的,但我希望MySQL也有约束)

为什么在SQL查询中?签入宿主语言不是更好吗?如果是空的,查询结果应该是什么?它应该忽略还是给出错误?它必须给出错误。我想使用所需的查询进行检查通过将用户键入的内容附加到代码中来邀请SQL注入。如果用户键入“密码;删除表用户”或类似的内容会怎样?为什么在SQL查询中?签入宿主语言不是更好吗?如果是空的,查询结果应该是什么?它应该忽略还是给出错误?它必须给出错误。我想使用所需的查询进行检查通过将用户键入的内容附加到代码中来邀请SQL注入。如果用户键入“密码;删除表用户”或类似的内容,该怎么办?