PHP和SQL不起作用?

时间:2016-04-14 08:58:03

标签: php mysqli

$sql = mysqli_query($db, "SELECT COUNT(ID) from bruker");

if (!$sql) {
    while ($row1 = mysqli_fetch_array($sql, MYSQL_NUM)); {
        echo $row1;
    }
} else {
    echo "Funker ikke";
}

我无法让它发挥作用,我得到的只是:“Funker ikke”。

4 个答案:

答案 0 :(得分:4)

1)使用错误的if条件。如果查询返回true,则插入if条件

2)使用MYSQL_NUM的错误回声数据。它返回数值数组

$sql = mysqli_query($db, "SELECT COUNT(ID) from bruker");      

if ($sql) {// if true
    while ($row1 = mysqli_fetch_array($sql, MYSQL_NUM)) {
        echo $row1['0'];//numeric array
    }
} else {
    echo "Funker ikke";
}    

根据以下评论更新

$sql = mysqli_query($db, "SELECT COUNT(ID) from bruker");
if ($sql) {
    $row1 = mysqli_fetch_array($sql, MYSQL_NUM);
    echo $row1['0']; //numeric array
} else {
    echo "Funker ikke";
}

阅读http://php.net/manual/en/mysqli-result.fetch-array.php

答案 1 :(得分:1)

你的代码有两个错误。
首先,应该是真正的条件只能进入显示循环。但是你把条件设为!$sql意味着假只能进入循环。因此,您应该将!$sql更改为$sql

另外,While循环后不应该直接加分号。

您尝试看下面的代码

$sql = mysqli_query($db, "SELECT COUNT(ID) from bruker");

if ($sql) {
    while ($row1 = mysqli_fetch_array($sql, MYSQL_NUM))
    {
        echo $row1[0]; 
    }
} 
else {
    echo "Funker ikke";
}

答案 2 :(得分:1)

你的代码是正确的,除了sql in if condition之前的not符号。如果你的sql查询错误,那么显示$ row1,否则如果它是正确的那么“funker ikke”被打印出来。恰恰相反。此代码有效:

 $sql = mysqli_query($db, "SELECT COUNT(ID) from bruker");      

 if ($sql) {
   // as the query can only return 1 row the while look is unnecessary
   //while ($row1 = mysqli_fetch_array($sql, MYSQL_NUM)) {

   $row = mysqli_fetch_array($sql, MYSQL_NUM)
   echo $row[0]; 

 } else {
   echo "Funker ikke";
 }

答案 3 :(得分:1)

您的代码中存在一些错误

首先,您不需要使用while循环来处理单个结果,SELECT COUNT()只能返回一行。

对于SELECT查询,第二个mysqli_query()将返回FALSE或mysqli_result对象,最好将if条件翻转如下,并专门测试FALSE而不是TRUE。

第三,mysqli_fetch_array($sql, MYSQL_NUM)返回一个数组,你必须使用数组表示法来获得唯一的返回值,即$row[0]

当任何mysqli_函数失败时,它会留下一些非常有用的错误信息,因此如果您不希望用户在代码生效时看到它们,请显示该信息或将其发送到应用程序错误文件。< / p>

$sql = mysqli_query($db, "SELECT COUNT(ID) from bruker");

if ($sql === FALSE) {
    echo "Funker ikke";
    echo mysqli_error($db);
    exit;
} else {
    $row = mysqli_fetch_array($sql, MYSQL_NUM);
    echo $row[0];
}