【问题标题】:Delete option is not working with PDO ,php删除选项不适用于 PDO ,php
【发布时间】:2015-12-19 00:56:00
【问题描述】:

无法在 php 中使用 PDO 删除 i 行。这是我在下面给出的代码

这是inc.common.php

<?php 
    @session_start();
    include_once '../common/inc.config.php';
    include_once '../common/inc.globalConstants.php';
    $db = new PDO("mysql:host=$mdbhost;dbname=$mdbname",$mdbuser,$mdbpass );
    $db->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ);
    $db->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
    include_once '../classes/cls.common.php';
    $Cobj=new common($db);
?>

这是我的 cls.class.php

 <?php
class common {
    public function common($dbcon) {
        $this->dbCon = $dbcon;
    }
    public function getCustomData($tableName,$fields, $conditions = "") {
        $stmt = "";
        $sql = "";
        $sql = "SELECT $fields FROM $tableName  $conditions ";
        $stmt = $this->dbCon->query($sql);
        $result = $stmt->fetchAll(PDO::FETCH_ASSOC);
        return $result;
      }
    public function delet($tableName, $class_id){
        $inputArray['classId']=$class_id;
        $count = $this->$dbCon->prepare("DELETE FROM $tableName WHERE classId =:classId");
        $result = $stmt->execute($inputArray);
        return $result;
     }
 ?>

这是我的 addinfo.php

<?php 
    include '../common/inc.common.php';
    $class_id=$_POST['refid'];
    if(isset($_POST['mode']))
    {
        $tableName="class";
        $class_id=$_POST['refid'];
        $res=$Cobj->delet($tableName, $class_id);
    }
?>

在使用 AJAX 调用传递变量时,我无法删除行。Ajax 调用成功。唯一的问题是 PDO 删除。

$.ajax({
        url: "../masters/addinfo.php", 
        type: "POST",        
        data:"refid="+class_id+"&mode=delete",
});   

我的 class 表有 4 个字段 classId,name,date,stat

【问题讨论】:

  • 抱歉我太天真了,POD 代表什么?
  • @Hanky 웃 Panky:PHP 数据对象 (PDO)。要访问数据库,我们可以使用 POD
  • 那么你真的看不出PDO和POD有什么区别吗?
  • @Hanky 웃 Panky:已更改 :)
  • @Hanky 웃 Panky:您的问题已解决,但我的问题尚未解决。我仍然无法解决此问题

标签: php ajax pdo


【解决方案1】:

function delet() 中的 $stmt 变量未定义。

【讨论】:

    【解决方案2】:
    public function delet($tableName, $class_id){
     $inputArray['classId']=$class_id;
     $stmt = $this->$dbCon->prepare("DELETE FROM $tableName WHERE classId =:classId");
     $result = $stmt->execute($inputArray);
     return $result;
    }
    

    会解决这个问题。注意发生了什么变化; $count改为$stmt

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-25
      • 2010-10-20
      • 2012-02-03
      • 2014-10-15
      • 1970-01-01
      • 2017-09-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多