在我的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()
和其他两个条件也将自动设置。