如何使用pdo删除Mysql行(没有javascript)

时间:2019-02-14 00:54:59

标签: php mysql

我正在尝试使用数据库信息动态更新html表。用户必须能够添加或删除信息。我不知道他怎么能从数据库中删除一行

                      <?php  
                      while($row = mysqli_fetch_array($result))  
                      {  
                           echo '  
                           <tr>  
                                <td>'.$row["Clientfirstname"].'</td>  
                                <td>'.$row["Clientlastname"].'</td>  
                                <td>'.$row["Clientemail"].'</td>
                                <td>'.$row["Invoicestatus"].'</td>  
                                <td>'.$row["reg_date"].'</td>   
                               <td><a href="delete.php"><button class="btn btn-primary" type="submit" name="id" value=.$row["id"].>Delete</button></td>


                           </tr>  
                           ';  
                      }  
                      ?>  

                 </table>  
  
    

这是delete.php页面>>

  
try{
    $pdo = new PDO("mysql:host=localhost;dbname=phplogin", "root", "");
    // Set the PDO error mode to exception
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e){
    die("ERROR: Could not connect. " . $e->getMessage());
}

if( isset( $_POST['id'] ) && is_numeric( $_POST['id'] ) && $_POST['id'] > 0 )
{
    $id = $_POST['id'];
    $stmt = $dbh->prepare( "DELETE FROM myinvoice WHERE id =:id" );
    $stmt->bindParam(':id', $id);
    $stmt->execute();
    if( ! $stmt->rowCount() ) echo "Deletion failed";
}
else
{
    echo "rtt";
}

我无法确定ID是否已正确发送到删除页面

1 个答案:

答案 0 :(得分:0)

您需要将按钮放在<form>中,而不是<a>中。

在使用.$row["id".连接变量之前,您还需要在引号末尾加上字符串。

<td><form action="delete.php" method="post"><button class="btn btn-primary" type="submit" name="id" value="'.$row["id"].'">Delete</button></form></td>