使用PHP与Mysqli

时间:2016-03-23 10:52:27

标签: php mysql mysqli

每次我运行以下代码:

 <?php
    $servername = "******";
    $username = "******";
    $password = "*******";
    $dbname = "*******";

    $conn = new mysqli($servername, $username, $password, $dbname);

    if ($conn->connect_error)
    {
        die("Connection failed: " . $conn->connect_error);
    } 

    $sql = "SELECT date, point, reason, teacher, giver FROM penalty WHERE studentid=".$_GET['id'];
    $result = $conn->query($sql);

    if ($result["num_rows"]  > 0) 
    {   
        echo "<table>";
        echo "<tr>";
        echo "<td>dated</td>";
        echo "<td>point</td>";
        echo "<td>reason</td>";
        echo "<td>giver</td>";
        echo "<td>teacher</td>";
        echo "</tr>";

        while($row = $result->fetch_assoc()) 
        {
            echo "<tr>";
            echo "<td>".$row["dated"]."</td>";
            echo "<td>".$row["point"]."</td>";
            echo "<td>".$row["reason"]."</td>";
            echo "<td>".$row["giver"]."</td>";
            echo "<td>".$row["teacher"]."</td>";
            echo "</tr>";
        }
        echo "</table>";
    }

    else if ($result["num_rows"] = 0)
    {
        echo "it is 0!";
    }

    else 
    {
        echo "Unknown Error!";
    }

    $conn->close();
    ?>

我收到的错误信息是我写的:

  

未知错误!

所以,我认为代码在

中存在一些问题
  

if($ result [&#34; num_rows&#34;]&gt; 0)

代码中的问题是什么,我该怎么做才能解决它?

PS。我是PHP的新手,随时回答。提前谢谢。

1 个答案:

答案 0 :(得分:3)

要检查从查询返回的行数,我们使用

if ($result["num_rows"]  > 0) 

相反

$result = $conn->query($sql);
if ($result->num_rows > 0) {

    echo "<table>";
    echo "<tr>";
    echo "<td>dated</td>";
    echo "<td>point</td>";
    echo "<td>reason</td>";
    echo "<td>giver</td>";
    echo "<td>teacher</td>";
    echo "</tr>";

    while ($row = $result->fetch_assoc()) {
        echo "<tr>";
        echo "<td>" . $row["dated"] . "</td>";
        echo "<td>" . $row["point"] . "</td>";
        echo "<td>" . $row["reason"] . "</td>";
        echo "<td>" . $row["giver"] . "</td>";
        echo "<td>" . $row["teacher"] . "</td>";
        echo "</tr>";
    }
    echo "</table>";
} else {
    echo "it is 0!";
}

您的整个代码将是

{{1}}

阅读http://php.net/manual/en/mysqli-result.num-rows.php

您的代码是为sql注入打开的

阅读http://php.net/manual/en/mysqli.prepare.php在mysqli中准备语句