首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >空字段的PHP foreach问题

问空字段的PHP foreach问题
EN

Stack Overflow用户
提问于 2011-06-05 04:18:39
回答 2查看 849关注 0票数 2

我有一个很大的表格

此表单由序列化jQuery函数调用的PHP文件处理

代码语言:javascript
复制
foreach($_GET['claimant'] as $k=>$v) {
$insClaim = "INSERT INTO `cR_Claimants` (`memberID`, `ParentSubmission`, `Name`, `DOB`, `Company`, `Email`, `MainPhone`, `OtherPhone`, `MobilePhone`, `OwnershipPercentage`, `Address`, `ZIPcode`, `Country`) VALUES ('".$memberID."', '".$refNumb."', '".mysql_real_escape_string($v['name'])."', '".$v['DOB']."', '".mysql_real_escape_string($v['company'])."', '".$v['email']."', '".$v['mainPhone']."', '".$v['alternatePhone']."', '".$v['mobilePhone']."', '".mysql_real_escape_string($v['percentage'])."', '".mysql_real_escape_string($v['address'])."', '".$v['ZIP']."', '".$v['country']."')";
$resultinsClaim=mysql_query($insClaim) or die("Error insert Claimants: ".mysql_error());
}

问题是在某些情况下$_GET['claimant']可能是空的。我的意思是,相关字段根本没有输入。

当这种情况发生时,当特定的$_GET['claimant']为空时,插入显然不应该运行。

我尝试了以下两种解决方案,但它们都不起作用,Insert无论如何都会运行,将空字符串放入我的数据库中。

请帮帮忙。

代码语言:javascript
复制
foreach($_GET['claimant'] as $k=>$v) {
if($_GET['claimant'] != "") {
$insClaim = "INSERT INTO `cR_Claimants` (`memberID`, `ParentSubmission`, `Name`, `DOB`, `Company`, `Email`, `MainPhone`, `OtherPhone`, `MobilePhone`, `OwnershipPercentage`, `Address`, `ZIPcode`, `Country`) VALUES ('".$memberID."', '".$refNumb."', '".mysql_real_escape_string($v['name'])."', '".$v['DOB']."', '".mysql_real_escape_string($v['company'])."', '".$v['email']."', '".$v['mainPhone']."', '".$v['alternatePhone']."', '".$v['mobilePhone']."', '".mysql_real_escape_string($v['percentage'])."', '".mysql_real_escape_string($v['address'])."', '".$v['ZIP']."', '".$v['country']."')";
$resultinsClaim=mysql_query($insClaim) or die("Error insert Claimants: ".mysql_error());
}
}

和

代码语言:javascript
复制
foreach($_GET['claimant'] as $k=>$v) {
if(!empty($_GET['claimant'])) {
$insClaim = "INSERT INTO `cR_Claimants` (`memberID`, `ParentSubmission`, `Name`, `DOB`, `Company`, `Email`, `MainPhone`, `OtherPhone`, `MobilePhone`, `OwnershipPercentage`, `Address`, `ZIPcode`, `Country`) VALUES ('".$memberID."', '".$refNumb."', '".mysql_real_escape_string($v['name'])."', '".$v['DOB']."', '".mysql_real_escape_string($v['company'])."', '".$v['email']."', '".$v['mainPhone']."', '".$v['alternatePhone']."', '".$v['mobilePhone']."', '".mysql_real_escape_string($v['percentage'])."', '".mysql_real_escape_string($v['address'])."', '".$v['ZIP']."', '".$v['country']."')";
$resultinsClaim=mysql_query($insClaim) or die("Error insert Claimants: ".mysql_error());
}
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-06-05 04:23:09

如果$_GET‘’claimant‘是一个数组,你应该询问它的长度:

代码语言:javascript
复制
if (count($_GET['claimant']) > 0) { ... }
票数 2
EN

Stack Overflow用户

发布于 2011-06-05 04:23:24

不知道为什么要在这里使用foreach()循环...除非表单上有多个名为claimant[]的字段,否则_GET['claimant']可能不是一个值数组。

只需执行以下操作:

代码语言:javascript
复制
$claimant = $_GET['claimant'];
if( $claimant != ""){
    $insClaim = "YOUR REALLY LONG QUERY";
    // etc.
}

另外:请,请,请在所有传入请求参数上使用mysql_real_escape_string()。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6239155

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档