代码之家  ›  专栏  ›  技术社区  ›  Ibrahim Azhar Armar

无法删除php中的数据库(mysql)记录,哪里出错了?

  •  1
  • Ibrahim Azhar Armar  · 技术社区  · 15 年前

    我正在尝试删除MySQL中用户表中的记录,

    代码是这样的。

    if(isset($_GET['id'])) {
        //create query to delete the record
        $query = "DELETE FROM users WHERE id =" . int($_GET['id'])  or die(mysql_error());
    
        //execute query
        if($mysqli->query($query)) {
            //print number of affected rows
            echo $mysqli->affected_rows. " row(s) affected";
        }
        else {
            //print error message
            echo "Error in query : $query " . $mysqli->error;
        }
    }
    else {
        echo "Could not Execute the Delete query";
    }
    

    同时,我正在迭代数据库中用户表中的记录,结果是这样的。

    //query to get records
    $query = "SELECT * FROM users";
    //execute query
    if($result = $mysqli->query($query)) {
        // see if any rows were returned
        if($result->num_rows > 0) {
            // if yes then print one after another
            echo "<table cellpadding=10 border=1>";
            while($row = $result->fetch_array()) {
                echo "<tr>";
                echo "<td>" .$row[0] . "</td>";
                echo "<td>" .$row[1] . "</td>";
                echo "<td>" .$row[2] . "</td>";
                echo "<td><a href =" . $_SERVER['PHP_SELF']. "?id" .$row[0]. ">Delete</a></td>";
                echo "</tr>";
            }
            echo "</table>";
        }
        $result->close();
    }
    

    问题是,我可以从数据库中获取记录并将其显示在浏览器中,但当我尝试删除记录时,第一个条件不通过,即如果(isset($\u get['id'])改为其他条件并打印消息“无法执行删除查询”,我猜它无法获取$\u get['id'],因此只有它引用用于输入if条件,

    P.S:如果有人用简单的话解释我,我会很感激的,我是编程新手,谢谢。

    2 回复  |  直到 15 年前
        1
  •  6
  •   Pekka    15 年前

    你错过了一个 = :

    echo "<td><a href =" . $_SERVER['PHP_SELF']. "?id=" .$row[0]. ">Delete</a></td>";
                             HERE -------------------^ 
    
        2
  •  1
  •   Artefacto    15 年前
    "DELETE FROM users WHERE id =" . int($_GET['id'])  or die(mysql_error());
    

    不应该是 intval 相反?没有任何功能 int 在PHP中。还有(不太理想的)转换为int,如下所示: (int) $_GET['id'] )