【问题标题】:Delete function not executing despite 'id' being passed尽管传递了“id”,但删除函数未执行
【发布时间】:2015-01-29 11:50:38
【问题描述】:

我有在收据页面中显示记录的代码。

 <?Php
    require "config.php";           

    $page_name="currentout.php";  
    $start=$_GET['start'];
    if(strlen($start) > 0 and !is_numeric($start)){
    echo "Data Error";
    exit;
    }


    $eu = ($start - 0); 
    $limit = 10;                                 
    $this1 = $eu + $limit; 
    $back = $eu - $limit; 
    $next = $eu + $limit; 

    $nume = $dbo->query("select count(id) from receipt")->fetchColumn();


    echo "<TABLE class='t1'>";
    echo  "<tr><th>ID</th><th>Name</th><th>Pass</th><th>Amount</th><th>Action</th></tr>";


    $query=" SELECT * FROM receipt  limit $eu, $limit ";


    foreach ($dbo->query($query) as $row) {

    @$m=$i%2;
    @$i=$i+1;   
    echo "<tr class='r$m'><td>$row[id]</td><td>$row[name]</td><td>$row[phone_num]</td><td>$row[Amount]</td><td><a href='delete.php?id=$row[id]'>delete</a></td></tr>";
    }
    echo "</table>";

    if($nume > $limit ){ 
    echo "<table align = 'center' width='50%'><tr><td  align='left' width='30%'>";

    if($back >=0) { 
    print "<a href='$page_name?start=$back'><font face='Verdana' size='2'>PREV</font></a>"; 
    } 

    echo "</td><td align=center width='30%'>";
    $i=0;
    $l=1;
    for($i=0;$i < $nume;$i=$i+$limit){
    if($i <> $eu){
    echo " <a href='$page_name?start=$i'><font face='Verdana' size='2'>$l</font></a> ";
    }
    else { echo "<font face='Verdana' size='4' color=red>$l</font>";}        
    $l=$l+1;
    }


    echo "</td><td  align='right' width='30%'>";

    if($this1 < $nume) { 
    print "<a href='$page_name?start=$next'><font face='Verdana' size='2'>NEXT</font></a>";} 
    echo "</td></tr></table>";

    } 
    ?>

这是链接的 delete.php 的代码。

<?php
require "config.php";
$pdo="null";
$sql = "DELETE FROM receipt  WHERE ID=  :ID";
$stmt = $pdo->prepare($sql);
$stmt->bindParam(':ID', $_GET['id'], PDO::PARAM_INT);  
$stmt->execute($sql);
       echo "Record deleted successfully";


   header('location: currentout.php');
?>

“id”正在传递到删除页面,但删除功能未执行。有人可以帮助发现 delete.php 中的错误吗??

【问题讨论】:

  • 你能在执行前获取$sql的var_dump并在评论中发布吗?
  • $pdo="null"; 这是干什么用的?
  • @Pete: $sql 是一个不会改变且没有变量的字符串...“DELETE FROM receipt WHERE ID= :ID”。
  • @Pete string(35) "从收据中删除 ID= :ID"

标签: php html pdo


【解决方案1】:

您将$pdo 设置为“null”,然后尝试将其用作对象。启用错误报告,您会看到相关的错误消息。

【讨论】:

  • 因为它将是未定义的变量
  • 你打电话给$pdo-&gt;prepare。如果它说$pdo 是未定义的,那么你必须在$pdo 中实例化 PDO 类。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-07-28
  • 1970-01-01
  • 2021-11-03
  • 2014-05-14
  • 1970-01-01
相关资源
最近更新 更多