如何检查PHP服务器上是否存在数据
我正在尝试向服务器发送一个数字字符串,并拆分每个数字。如果数据库中存在该数字,则指定一个“t”值,如果不存在,则指定“f”值。 但出于某种原因,我只得到了t如何检查PHP服务器上是否存在数据,php,Php,我正在尝试向服务器发送一个数字字符串,并拆分每个数字。如果数据库中存在该数字,则指定一个“t”值,如果不存在,则指定“f”值。 但出于某种原因,我只得到了t <?php # get phone from uid include_once 'utils.php'; $phone = $_GET['phone'] or die("isRegistered: missing phone"); $response = ""; $phonearray = explode(":", $phone);
<?php
# get phone from uid
include_once 'utils.php';
$phone = $_GET['phone'] or die("isRegistered: missing phone");
$response = "";
$phonearray = explode(":", $phone);
for ($i = 0; $i<sizeof($phonearray); $i++){
$result = findRow("phone", $phonearray[i], "user_device") or "true" ;
if($result == "true")
{
$response = $response."t".":";
$result = "";
}
else
{
$response = $response."f".":";
$result = "";
}
}
die($response);
?>
将此部分更改为
if($result == "true")
{
$response = $response."t".":";
$result = "";
}
else
{
$response = $response."f".":";
$result = "";
}
if($result == 'true')
{
$response = $response.'t:';
$result = '';
}
else
{
$response = $response.'f:';
$result = '';
}
将此部分更改为
if($result == "true")
{
$response = $response."t".":";
$result = "";
}
else
{
$response = $response."f".":";
$result = "";
}
if($result == 'true')
{
$response = $response.'t:';
$result = '';
}
else
{
$response = $response.'f:';
$result = '';
}
您已经为if和else条件设置了“t”
检查一下
if(isset($_GET['phone']))
您已经为if和else条件设置了“t”
检查一下
if(isset($_GET['phone']))
将此部分更改为
if($result == "true")
{
$response = $response."t".":";
$result = "";
}
else
{
$response = $response."f".":";
$result = "";
}
if($result == 'true')
{
$response = $response.'t:';
$result = '';
}
else
{
$response = $response.'f:';
$result = '';
}
将此部分更改为
if($result == "true")
{
$response = $response."t".":";
$result = "";
}
else
{
$response = $response."f".":";
$result = "";
}
if($result == 'true')
{
$response = $response.'t:';
$result = '';
}
else
{
$response = $response.'f:';
$result = '';
}
实际上这里有几个问题
't'
“true”
而不是布尔值true
。由于PHP在不同类型之间转换值的方式,它可能会起作用,但实际上您可能打算使用true
,而使用字符串可能会导致以后出现意外行为findRow()
做了什么,但通过在末尾添加或true
(甚至或“true”
),$result
将始终为true
i
引用$phonearray
而不是$i
i
将生成一个PHP警告,并将被解释为“i”
——而不是$i
变量的值$result = findRow("phone", $phonearray[i], "user_device") or "true" ;
if($result == "true")
{
$response = $response."t".":";
$result = "";
}
else
{
$response = $response."t".":";
$result = "";
}
通过这样重写,您将获得更好的结果:
$result = findRow("phone", $phonearray[$i], "user_device");
$response .= ($result ? 't' : 'f') . ':';
我在猜测findRow()
的作用,因为您没有包含任何关于它的内容,但我假设它只返回一个真/假值
您会注意到,我还通过使用将整个
if/else
语句简化为几行。这里实际上有几个问题
't'
“true”
而不是布尔值true
。由于PHP在不同类型之间转换值的方式,它可能会起作用,但实际上您可能打算使用true
,而使用字符串可能会导致以后出现意外行为findRow()
做了什么,但通过在末尾添加或true
(甚至或“true”
),$result
将始终为true
i
引用$phonearray
而不是$i
i
将生成一个PHP警告,并将被解释为“i”
——而不是$i
变量的值$result = findRow("phone", $phonearray[i], "user_device") or "true" ;
if($result == "true")
{
$response = $response."t".":";
$result = "";
}
else
{
$response = $response."t".":";
$result = "";
}
通过这样重写,您将获得更好的结果:
$result = findRow("phone", $phonearray[$i], "user_device");
$response .= ($result ? 't' : 'f') . ':';
我在猜测findRow()
的作用,因为您没有包含任何关于它的内容,但我假设它只返回一个真/假值
您会注意到,我还使用了将整个
if/else
语句简化为几行。if和else条件都将$response设置为t。很抱歉,这是一个拼写错误。if和else条件都将$response设置为t。很抱歉,这是一个拼写错误。@WesleyMurch检查差异。这并不能解决问题事实上,$result
将始终是真的
@WesleyMurch检查差异。这并没有解决$result
将始终是真的这一事实。这并没有解决$result
将始终是真的这一事实。这并没有解决$result
将始终是的这一事实true
。这并没有解决$result
始终为true
的问题。这并没有解决$result
始终为true
的问题。问题是findrow()将转到数据库中检查是否存在电话号码。如果返回,则返回该表数据的数组。现在我只想区分数据库中是否存在这个数字。如果是,那么我想给它分配一个“t”值,如果不是,那么给它分配一个“f”值……但是由于某种原因,它给出了所有的true或false。这个问题太愚蠢了。$phonearray[i]应该是$phonearray[$i]……谢谢你的帮助。我确实学到了一些东西。@nishan_vodoo哎呀,我错过了那个。我已经更新了我的答案,也包括了该修复(供将来参考)。问题是findrow()将去检查数据库中是否存在电话号码。如果返回,则返回该表数据的数组。现在我只想区分数据库中是否存在这个数字。如果是,那么我想给它分配一个“t”值,如果不是,那么给它分配一个“f”值……但是由于某种原因,它给出了所有的true或false。这个问题太愚蠢了。$phonearray[i]应该是$phonearray[$i]……谢谢你的帮助。我确实学到了一些东西。@nishan_vodoo哎呀,我错过了那个。我已经更新了我的答案,以包括该修复程序(供将来参考)。