【问题标题】:PHP "Use of undefined constant" from $_POST$_POST 中的 PHP“使用未定义的常量”
【发布时间】:2013-02-25 12:52:55
【问题描述】:

这方面的新手,但搜索没有成功。我的脚本出现以下错误:

“注意:使用未定义的常量 sStatus - 假定为 'sStatus'”...

“警告:mysql_numrows() 期望参数 1 是资源,布尔值在”...

我希望后者是由于第一个问题。如果您需要更多代码,请告诉我,但它涉及的部分是:

第 31 行:

$sStatus = $_POST['sStatus'];

以及第 43 到 53 行:

if (sStatus == "all")
{
    $query="SELECT * FROM tickets WHERE RequestBy='$sName'";
}
else
{
    $query="SELECT * FROM tickets WHERE RequestBy='$sName' AND Status='$sStatus";
}
//put query in result and count rows ready to loop for table display
$result=mysql_query($query);
$num=mysql_numrows($result);

sStatus 从主页上的表单中提取,并且是“0”、“1”或“全部”。相同的变量在脚本中进一步使用,如果将“0”或“1”更改为“成功打开”或“关闭”。

非常感谢任何帮助。 马丁

【问题讨论】:

标签: php mysql variables post constants


【解决方案1】:

$sStatus = $_POST['sStatus']; 更改为:$sStatus = isset($_POST['sStatus'])?$_POST['sStatus']:"";

if (sStatus == "all") 更改为if ($sStatus == "all") => 缺少$

$num=mysql_numrows($result); 更改为$num=mysql_num_rows($result);

【讨论】:

  • 非常感谢大家的帮助。很尴尬,他们实际上是拼写错误,而不是缺乏知识,很抱歉这么愚蠢,但感谢你回到正确的道路上。
【解决方案2】:

错误 1:

在第 43 行中使用 sStatus 而不是 $sStatus

错误 2:

函数调用mysql_num_rows()

附带说明:请不要使用mysql_* 函数。请改用PDO,尤其是对于prepared statements,这也将提高您的应用程序的安全性。

【讨论】:

    【解决方案3】:

    你缺少一个“$”:

    if ($sStatus == "all") 
    

    这应该消除警告。此外,您在第二个查询中缺少单引号:

    $query="SELECT * FROM tickets WHERE RequestBy='$sName' AND Status='$sStatus'";
    

    希望这会有所帮助。

    【讨论】:

      【解决方案4】:
       if ($sStatus == "all")
       {
        $query="SELECT * FROM tickets WHERE RequestBy='$sName'";
       }
      else
      {
      $query="SELECT * FROM tickets WHERE RequestBy='$sName' AND Status='$sStatus";
      }
      

      你缺少 $sStatus "$",这就是为什么它假设它是一个常数。我同意,您应该使用 PHP PDO 对象进行数据库操作,它使查询非常易于使用..

      【讨论】:

        猜你喜欢
        • 2016-08-19
        • 2020-03-16
        • 1970-01-01
        • 2016-03-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-06-20
        • 1970-01-01
        相关资源
        最近更新 更多