为什么即使我选择的数据存在,我的查询也总是返回else语句?

时间:2018-09-02 10:13:52

标签: mysql sql mysqli

$sql0unded = "SELECT * FROM tomb";
$query0unded = mysqli_query($dbconn,$sql0unded) or die ("Error: ".mysqli_error($dbconn).header("Refresh: 1,index.html"));
$row0unded = mysqli_num_rows($query0unded);
if($row0unded==1)
{ echo "yeayy";}
else
{header("Refresh:1;byebye.php");}

这是我的数据库

CREATE TABLE `tomb` (
  `id` int(100) NOT NULL,
  `ded` date NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

INSERT INTO `tomb` (`id`, `ded`) VALUES
(1, '2019-01-01'),
(2, '2019-01-02'),
(3, '2019-01-03'),
(4, '2019-01-04'),
(5, '2019-01-05'),
(6, '2019-01-06'),
, '2019-02-10');

ALTER TABLE `tomb`
  ADD PRIMARY KEY (`id`);

1 个答案:

答案 0 :(得分:0)

mysqli_num_rows返回结果集中的结果数。当您在设置表时插入多行,然后进行SQL查询以返回这些行的 all 时,从您对mysqli_num_rows的调用返回的值将大于1。 ,则if等于1的条件测试失败,并且进入了else分支。

如果这不是预期的行为,则需要:

  • 更改表中的行数,以便只有一行;或
  • 限制查询SELECT中的结果,以确保仅返回一行(应确保使用数据库中的约束来强制执行该行);或
  • 更改您的条件以查找从调用的行数返回的值为>= 1