Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/248.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在我的PHP页面上的SQL中的Find方法会查找所有内容,即使记录为null也是如此_Php_Mysql - Fatal编程技术网

在我的PHP页面上的SQL中的Find方法会查找所有内容,即使记录为null也是如此

在我的PHP页面上的SQL中的Find方法会查找所有内容,即使记录为null也是如此,php,mysql,Php,Mysql,好的,我写了一些代码来查找测试数据库中的记录,如果有记录并显示数据,它就会工作,如果没有记录,它仍然会说它找到了东西。应该说没有。它甚至发现数据库中没有的东西,但显然没有数据显示,这很烦人。 我需要一双新眼睛 我认为错误在这里: $sql = "SELECT * FROM Kittenzz WHERE KittenID='".$_POST['KittenID']."';"; $result = mysql_query($sql, $connection); 但为了以防万一,这里

好的,我写了一些代码来查找测试数据库中的记录,如果有记录并显示数据,它就会工作,如果没有记录,它仍然会说它找到了东西。应该说没有。它甚至发现数据库中没有的东西,但显然没有数据显示,这很烦人。 我需要一双新眼睛

我认为错误在这里:

$sql = "SELECT * FROM Kittenzz
        WHERE KittenID='".$_POST['KittenID']."';";
$result = mysql_query($sql, $connection);
但为了以防万一,这里是完整的代码减去数据库的登录凭据

<?php
if(isset($_POST['Find'])) 
{
            $connection = mysql_connect("Login Info Deleted");

            // Check connection
            if (!$connection)
        {
            echo "Connection failed: " . mysql_connect_error();
        }
            else
            { //else 1 
                //select a database
                $dbName="Katz";
                $db_selected = mysql_select_db($dbName, $connection); 

                //confirm connection to database
                if (!$db_selected)
                {
                    die ('Can\'t use $dbName : ' . mysql_error());
                }

                else
                { //else 2
            if ($_POST[KittenID]=='')
                    {   
                        $OutputMessage = 'Must add a Kitten-ID';
                    }                       
            else

            {//exception else

                    $sql = "SELECT * FROM Kittenzz
                            WHERE KittenID='".$_POST['KittenID']."';";
                    $result = mysql_query($sql, $connection);

                    while($row = mysql_fetch_array($result))
                    {
                    $Name = $row['Name'];
                    $KittenID = $row['KittenID'];
                    $KittenAge = $row['KittenAge'];
                    $Email = $row['Email'];
                    $Comments = $row['Comments'];
                    $Gender = $row['Gender'];
                    $Passive = $row['Passive'];
                    $Playful = $row['Playful'];
                    $Activity = $row['Activity']; 

                    }

                if ($result)
                {  
                   $OutputMessage = 'Record Found';
                   //echo "<p>Record found<p>";
                }   
                    else
                    {  
                       $OutputMessage = 'RECORD NOT FOUND';

                    }
                }//exception else
            }//else 2 end

                }//else 1 end


            mysql_close($connection);
}

?>

这是您的错误,这意味着如果查询成功执行(即使有0条记录),则表示已找到记录。仅当返回的记录数大于0时,才应该这样说

      if (mysql_num_rows($result)>0)
      {  
       $OutputMessage = 'Record Found';
      } 
但是代码中更大的问题可以通过阅读来解决

这是您的错误,这意味着如果查询成功执行(即使有0条记录),则表示已找到记录。仅当返回的记录数大于0时,才应该这样说

      if (mysql_num_rows($result)>0)
      {  
       $OutputMessage = 'Record Found';
      } 
但是代码中更大的问题可以通过阅读来解决


这可能会发生,因为如果
$\u POST['KittenID']
为空,sql查询将如下所示:
SELECT*FROM kittenz,其中KittenID=“”必须将上述if语句更改为:

if (!isset($_POST[KittenID]) || empty($_POST[KittenID]) || $_POST[KittenID]=='')
                {   
                    $OutputMessage = 'Must add a Kitten-ID';
                }   

这可能会发生,因为如果
$\u POST['KittenID']
为空,sql查询将如下所示:
SELECT*FROM kittenzwhere KittenID=“”必须将上述if语句更改为:

if (!isset($_POST[KittenID]) || empty($_POST[KittenID]) || $_POST[KittenID]=='')
                {   
                    $OutputMessage = 'Must add a Kitten-ID';
                }   


提醒一下,mysql已经被弃用,不应该再使用了,试试Mysqli或PDO吧。教授想要mysql,我真的应该在我的问题中对此提出警告。教授说
mysql
并不一定意味着你必须使用PHP的
mysql
扩展。您可以使用php的mysqli或pdo扩展来处理mysql数据库。我几乎可以肯定他指的是MySQL数据库,而不是PHP.Holly god的
MySQL.*
api。我不知道如何使用mysql了。我认为您必须将$sql更改为$sql=“SELECT*FROM Kittenzz,其中KittenID=$\u POST['KittenID']”;这将是第一步。请注意,mysql已被弃用,不应再使用,请尝试Mysqli或PDO。教授想要mysql,我真的应该在我的问题中对此提出警告。教授说
mysql
并不一定意味着你必须使用PHP的
mysql
扩展。您可以使用php的mysqli或pdo扩展来处理mysql数据库。我几乎可以肯定他指的是MySQL数据库,而不是PHP.Holly god的
MySQL.*
api。我不知道如何使用mysql了。我认为您必须将$sql更改为$sql=“SELECT*FROM Kittenzz,其中KittenID=$\u POST['KittenID']”;这将是第一步。我感到很惭愧,每个人都告诉我这个,教授说,是的,除了你们,我不想解决这些问题。这是下学期的课程……不要感到羞愧,继续学习,继续提问(当你自己的尝试失败时:P),并不断提高。忘记一切else@user3541786你确定你没有被你的教授测试以正确地逃避用户输入吗?@jeroen我可以,但我的时间很短,我不会冒险。@user3541786如果你使用的是
mysql\u*
,它只是添加了一个函数调用。我觉得很惭愧每个人都告诉我这一点,教授说,是的,除了你们,我不想解决这些问题。这是下学期的课程……不要感到羞愧,继续学习,继续提问(当你自己的尝试失败时:P),并不断提高。忘记一切else@user3541786你确定你没有被你的教授测试以正确地逃避用户输入吗?@jeroen我可以,但我的时间很短,我不会冒险。@user3541786如果你使用的是
mysql.*
,它只是添加了一个函数调用。你可以使用
empty()
和其他两个条件也将自动设置。您只需使用
empty()
和其他两个条件也将自动设置。