Php MYSQL结果;未找到任何记录对账单

Php MYSQL结果;未找到任何记录对账单,php,mysql,sql,database,Php,Mysql,Sql,Database,可能重复: 我有下面的代码显示来自MYSQL数据库的数据(目前正在研究sql注入问题),当没有找到结果时,我需要插入一条错误消息…不知道该放在哪里!如果(mysql_num_rows($result)==0),我已经尝试了代码{ echo“No row found!”但继续获取语法错误,是否有人知道此错误在代码中的正确位置 -- 执行var\u dump($GET\u)以调试是否获取有效字符串。如果其中任何字符串为空,则查询将尝试匹配空值,而不是NULL。应通过执行以下操作来防止此情况发生:

可能重复:

我有下面的代码显示来自MYSQL数据库的数据(目前正在研究sql注入问题),当没有找到结果时,我需要插入一条错误消息…不知道该放在哪里!如果(mysql_num_rows($result)==0),我已经尝试了代码{ echo“No row found!”但继续获取语法错误,是否有人知道此错误在代码中的正确位置

-- 执行
var\u dump($GET\u)
以调试是否获取有效字符串。如果其中任何字符串为空,则查询将尝试匹配空值,而不是
NULL
。应通过执行以下操作来防止此情况发生:

if(!$_GET['bedrooms'] || $_GET['bedrooms'] == ''){
$property = 'NULL';
}//repeat for all three

$query = "SELECT * FROM `properties` WHERE 'bedrooms' = '$bedrooms' AND 'sleeps_min' = '$sleeps_min' AND 'availability' = '$availability'";
而不是:

while ($row = mysql_fetch_assoc($result)) {
    $r[] = $row; 
}
您可以简单地执行以下操作:

$r = mysql_fetch_array($query);
但请将其包含在条件中,以查看您的查询是否找到任何内容:

if(mysql_affected_rows() > 0){
  //your code here will execute when there is at least one result
  $r = mysql_fetch_array($query); 
} 
else{//There was either nothing or an error
  if(mysql_affected_rows() == 0){
    //There were 0 results 
  } 
  if(mysql_affected_rows() == -1) {
    //This executes when there is an error 
    print mysql_error(); //not recommended except to debug
  }
}

我在你的代码中发现了一些与此一致的错误

$query = "SELECT * FROM `properties` WHERE bedrooms = '{$bedrooms}' AND sleeps_min = '{$sleeps_min}' AND availability = '{$availability}'";
$row=mysql_query($query);
您使用的是
beddrooms='{$beddrooms}'
,但
$beddrooms在整个cod中不是可变的,它必须是$preopery
。我对下面给出的代码做了一些更改,请尝试

        <?php

        require 'defaults.php';
        require 'database.php';

        /* get properties from database */

        /*if get $_GET['bedrooms'] value else ''*/

        if (isset($_GET['bedrooms'])) {
            $property = $_GET['bedrooms'];
        } else {
            $property = '';
        }

        /*if get $_GET['sleeps_min'] value else ''*/

        if (isset($_GET['sleeps_min'])) {
            $sleeps_min = $_GET['sleeps_min'];
        } else {
            $sleeps_min = '';
        }

        /*if get $_GET['availability'] value else ''*/

        if (isset($_GET['availability'])) {
            $availability = $_GET['availability'];
        } else {
            $availability = '';
        }

        $query = "SELECT * FROM `properties` WHERE bedrooms = '" . $property . "' AND sleeps_min = '" . $sleeps_min . "' AND availability = '" . $availability . "'";

        $result = mysql_query($query) or die(mysql_error());

        if ($result) {
            while ($row = mysql_fetch_assoc($result)) {
                $r[] = $row;
            }
        }
        ?>

没有不同的问题为以冗长描述的形式发布代码的缺点而欢呼。在代码中很难找到PHP语法错误“我已经尝试了代码,但一直都有语法错误”没有语法错误,但我想知道的是我把语句放在了哪里…$row=mysql\u query($query)或者死(mysql_error());Dave,你还没有完成你的其他问题。你在哪里定义你的
do_查询()
函数?
$row
正在被覆盖,
$result
在任何地方都没有定义,据我所知,它实际上可以工作。在期待帮助之前,先学会使用堆栈。见鬼,在那之前先学习基本的PHP。
但要不断发现语法错误
-这是你自己的话。你必须先下定决心,然后再去问问题例如使用
如果(!empty($\u GET['beddrooms']){}
将是一个更简单的条件。你是对的。我没有想到这一点。
        <?php

        require 'defaults.php';
        require 'database.php';

        /* get properties from database */

        /*if get $_GET['bedrooms'] value else ''*/

        if (isset($_GET['bedrooms'])) {
            $property = $_GET['bedrooms'];
        } else {
            $property = '';
        }

        /*if get $_GET['sleeps_min'] value else ''*/

        if (isset($_GET['sleeps_min'])) {
            $sleeps_min = $_GET['sleeps_min'];
        } else {
            $sleeps_min = '';
        }

        /*if get $_GET['availability'] value else ''*/

        if (isset($_GET['availability'])) {
            $availability = $_GET['availability'];
        } else {
            $availability = '';
        }

        $query = "SELECT * FROM `properties` WHERE bedrooms = '" . $property . "' AND sleeps_min = '" . $sleeps_min . "' AND availability = '" . $availability . "'";

        $result = mysql_query($query) or die(mysql_error());

        if ($result) {
            while ($row = mysql_fetch_assoc($result)) {
                $r[] = $row;
            }
        }
        ?>