【问题标题】:CRUD - PHP PDO ErrorCRUD - PHP PDO 错误
【发布时间】:2015-02-24 15:05:13
【问题描述】:

我对源代码 PHP PDO 有疑问。我尝试使用 PHP PDO 进行 CRUD,但是当我尝试删除源代码并运行脚本时,数据不想被删除.. 如果我的讲话没有问题,我很抱歉,我来自印度尼西亚

感谢之前

脚本函数删除:

public function deleteData($id)
    {
        // fungsi menghapus data dari database
    $this->id = $id;
    $this->sql = "DELETE FROM student WHERE id=:id";
    $this->q = $this->dbh->prepare($sql);
    $this->q->bindParam(":id",$this->id);
    $this->q->execute();
    return true;
    }

脚本删除.php

<?php
     include "belajar_crud.php";
     $obj = new crud;
     $id = isset($_GET['id']) ? $_GET['id']:'';
     $obj->deleteData($id);
?>

【问题讨论】:

  • 确切的意外行为是什么?您需要显示导致这种意外行为的代码吗?
  • 您是否遇到任何错误?代码本身看起来不错,但可能是表名或字段名错误,id 可能包含无效字符,或者您可能缺少删除行的正确凭据。
  • 我在运行时没有看到错误代码,但是当我尝试删除时数据不会被删除
  • 看来您已经开始编写自己的数据库层了。请记住,任何现代的development framework(如Laravel)已经拥有一个非常强大的功能,所以这通常会适得其反。

标签: php mysql pdo


【解决方案1】:

改变这一行:

$this->q = $this->dbh->prepare($sql);

进入这个:

$this->q = $this->dbh->prepare($this->sql);

这是我在代码中看到的唯一错误... 如果不是这种情况,您需要提供更多信息。

【讨论】:

  • 感谢重播,我已经换掉了,但是运行的时候数据还是不想被抹掉
【解决方案2】:

你为什么不试试这个?

config.php:

define('HOST','your host');
define('BD','your database');
define('USER','your user');
define('PASS','your password');

BD.class.php:

class BD{
     private static $conn;
     public function __construct(){}
     public function conn(){
          if(is_null(self::$conn)){
               self::$conn = new PDO('mysql:host='.HOST.';dbname='.BD.'',''.USER.'',''.PASS.'');
          }
          return self::$conn;
     }
}

你的删除代码:

@BD::conn();
$query = @BD::conn()->prepare("DELETE FROM YOURTABLE WHERE ID = ?");
if($query->execute(array($this->id))){
    echo "<script>alert('Delete Successful');</script>";
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-07-31
    • 2014-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-02
    相关资源
    最近更新 更多