gpt4 book ai didi

php - 我的 PHP 页面上的 SQL 中的 Find 方法找到所有内容,即使记录为空

转载 作者:行者123 更新时间:2023-11-29 04:19:31 25 4
gpt4 key购买 nike

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

我认为错误在这里:

$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);
}

?>

最佳答案

      if ($result)
{
$OutputMessage = 'Record Found';
}

这是你的错误,这意味着如果查询成功执行(即使有 0 条记录)你说找到了记录。你应该只说如果返回的记录数大于 0。

      if (mysql_num_rows($result)>0)
{
$OutputMessage = 'Record Found';
}

但是你的代码中更大的问题可以通过阅读来解决

How can I prevent SQL injection in PHP?

关于php - 我的 PHP 页面上的 SQL 中的 Find 方法找到所有内容,即使记录为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29228178/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com