gpt4 book ai didi

php - 处理 mysql 查询中的空/空白数据?

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

假设您的表单有一些字段,其中一些字段可以由用户简单地留空以便稍后填写。

在将其处理到 SQL 查询之前,你们如何处理它?<​​/p>

我对 PHP 还很陌生,这就是我的做法。

function checkVAR( $str )
{
$val = htmlentities( $_REQUEST[$str] , ENT_QUOTES , "UTF-8" );
if ( $val == "" )
return "NULL";
return "'" . $val . "'";
}

稍后我的查询

$query = "INSERT INTO tblName ( idCol , col2 , col3 ) " .
"VALUES (" . checkVAR('idcol') . "," . checkVAR('col2') . "," . checkVAR('col3') . ");"

我发现我的方法仍然很乏味,我想知道是否有其他更好的方法来处理这种情况。我的这个函数在返回数字方面表现不佳,因此我有一个单独的函数,其功能完全相同,只是它返回 0 而不是 null

最佳答案

首先,在将数据输入数据库之前,不应对 HTML 字符进行编码。如果您希望通过某些非 HTML 显示方式发送数据,会发生什么情况?它可能看起来像贪吃的东西。您至少应该转义字符串数据并确保数字数据类型转换为适当的类型。更好的是使用准备好的语句。

我假设您正确使用 mysqli扩展,因为较旧 mysql_* API has been deprecated 。您正在使用改进扩展,对吗?正确的?好的!

function getNullOrEscaped($string)
{
// casting ensures that we are passing a string to mysqli_real_escape_string
// and allows us to pass objects with __toString implemented
$string = (string) $string;
return ($string === '') ? null : mysqli_real_escape_string($string);
}

但是,我可能会考虑使用 prepared statements

关于php - 处理 mysql 查询中的空/空白数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10645891/

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