Php 检查查询字符串是否为空的替代方法
我只是想知道是否有更好的方法来检查空字符串,这个方法可以工作,但在第一次加载表单时会显示错误(因为查询是空的) 很简单,在这里检查一下Php 检查查询字符串是否为空的替代方法,php,forms,Php,Forms,我只是想知道是否有更好的方法来检查空字符串,这个方法可以工作,但在第一次加载表单时会显示错误(因为查询是空的) 很简单,在这里检查一下 $order = "INSERT INTO sbh_itemsheet (shopCode, itemNumber, itemDescription) VALUES ('$shopCode','$itemNumber','$itemDescription')"; $result = mysql_query($order); //order exe
$order = "INSERT INTO sbh_itemsheet
(shopCode, itemNumber, itemDescription)
VALUES
('$shopCode','$itemNumber','$itemDescription')";
$result = mysql_query($order); //order executes
if($result)
{
echo("
Input data is succeed");
}
else
{
echo("
Input data is fail");
}
我不知道如何消除第一条错误消息,实际上我应该从脚本开始检查,而不是从底部开始检查,但是我的大脑今天停止工作了,我想你们中的一些可爱的人可能会提供帮助。在处理查询之前,您需要检查变量是否存在
$result = false;
if($shopCode !="" && $itemNumber !="" && $itemDescription !="")
{
$order = "INSERT INTO sbh_itemsheet
(shopCode, itemNumber, itemDescription)
VALUES
('$shopCode','$itemNumber','$itemDescription')";
$result = mysql_query($order); //order executes
if($result)
{
echo("Input data is succeed");
}
else
{
echo("Input data is fail");
}
}
我上面的例子回答了你的问题。但是,我会考虑从
mysql
移动到mysqli
或pdo在实际执行查询之前,您可以测试输入到查询中的值:
if ( $shopCode && $itemNumber && $itemDescription ){
// Query params exist - run the query
$order = "INSERT INTO...";
...
} else {
// Query params missing - query not executed
}
最后,我建议您阅读以下文章,解释为什么使用mysql.*
库是一个非常糟糕的主意。:您可以检查它们是否已设置:
if(isset($shopCode, $itemNumber, $itemDescription)) {
// do your stuff
}
或者如果它们是空的:
if(!empty($shopCode) && !empty($itemNumber) && !empty($itemDescription)) {
// do your stuff
}
请不要通过在字符串中插入变量来组装MySQL语句。如果您没有正确地转义传入的数据,那么您的应用程序将面临SQL注入攻击的风险。您应该改为使用准备好的语句进行调查。我通常使用一个名为“submitting”的隐藏表单值,并在表单提交时将其设置为“1”。然后,当文章通过时,我选中$submitting=$\u POST('submitting');并且只有在提交表单时才执行必要的代码。众所周知,这是一个只有具有登录权限的人才能访问的部分,注入攻击并不是问题,因为登录设置使用PDO。只有3个人可以访问。当我有时间时,这将更改@LeighSimpson注意:未定义变量:shopCode
@AbraCadaver-yes。。这是真的,因为我的代码只是一个片段。我不太清楚你的评论是什么意思…OP抱怨一个未定义的变量错误,而你的代码抛出一个未定义的变量错误。@Abracadver-我看不到OP中的信息。。。您在哪里看到有关未定义变量的详细信息
错误?如果未设置变量,您发布的代码会引发错误,这就是问题所在。我认为您没有抓住要点。。。您的代码将产生与OP完全相同的结果。当参数($shopCode
,$itemNumber
…等)丢失时,第一次加载页面时,您仍然会得到“输入数据失败”的结果。@lix这是一个输入错误,结束大括号的位置不正确。我将使用它,直到我有机会用PDO重新编写它,谢谢这回答了我的问题。