在PHP中没有来自mysql查询的输出

时间:2015-10-23 16:58:25

标签: php mysql mysqli

我正在对我以前尝试用来计算行的查询进行故障排除,但现在我发现在数据库中找到了0行,即使它们存在。我已经检查了我以前使用的查询,它们的工作和看起来一样。 $ db_conx肯定可以连接到数据库,因为我在其他网页上使用它。有没有人有什么建议?感谢

$result =("SELECT * FROM Request WHERE user2='joey' AND accepted='0'");
$query = mysqli_query($db_conx, $result);
$rows = mysqli_num_rows($query);
if (rows < 1) {
    echo '<strong style="color:#F00;">No rows</strong>';
    exit();
} else {
    echo '<strong style="color:#F00;">Rows exist</strong>';
    exit();
}

2 个答案:

答案 0 :(得分:2)

您错过了从数据库select获取内容的重要一步,这就是您尝试select的内容。而且,您也错过了$中的rows

$result =("SELECT something FROM Request WHERE user2='joey' AND  accepted='0'");
$query = mysqli_query($db_conx, $result);
$rows = mysqli_num_rows($query);
if ($rows < 1) {
   echo '<strong style="color:#F00;">No rows</strong>';
   exit();
} else {
echo '<strong style="color:#F00;">Rows exist</strong>';
exit();
}

答案 1 :(得分:1)

您修改了原始帖子https://stackoverflow.com/revisions/33307758/1

SELECT FROM Request

您从查询中选择了“无”

SELECT FROM ...

阅读SELECT上的手册:

if (rows < 1) { - rows被视为constant而不是变量。

Error reporting会告诉你,如果它被设置为捕获并显示在你的系统上。

if ($rows < 1) {

并确保使用与查询相同的MySQL API成功连接到数据库。

检查查询错误

还要考虑使用准备好的陈述。

<强>诺塔:

如果数据来自用户输入,您还需要转义数据。

即:

$var = $_POST['var'];

如果$_POST['var']等同于joey's bistro

如果它在查询WHERE user2='joey's bistro'中作为变量传递,MySQL会将其视为WHERE user2='$var',从而导致语法错误。

转义它会将其呈现为joey\'s bistro有效语法。

$var = mysqli_real_escape_string($db_conx,$_POST['var']);

这对于这一点以及帮助防止SQL注入都是有益的。