2015-02-24 3 views
-3

У меня проблема с исходным кодом PHP PDO. Я пытаюсь сделать CRUD с PHP PDO, но когда я пытаюсь использовать исходный код для удаления, и когда я запускаю скрипт, данные не хотят стираться. Прошу прощения, если мой разговор не был чем-то неправильным, я из ИндонезииCRUD - ошибка PHP PDO

Спасибо, прежде чем

функция сценария удаления:

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; 
    } 

Script delete.php

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

Что такое точное неожиданное поведение? Вам нужно показать код, вызывающий это неожиданное поведение? –

+0

У вас возникли ошибки? Код сам по себе выглядит хорошо, но, возможно, имя таблицы или имя поля неверно, идентификатор может содержать недопустимый символ, иначе у вас не будет необходимых учетных данных для удаления строк. – GolezTrol

+0

Этот код delete.php: https://gist.github.com/RiskyFeryansyah/0f0d968c7d0bd82c5bc6 Этот код Функция удаления PHP: https://gist.github.com/RiskyFeryansyah/b6951baa0ed4af7a9a70 –

ответ

0

Изменить эту строку:

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

В это:

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

Это единственная ошибка я вижу в коде ... Если это не так, то вам необходимо предоставить дополнительную информацию.

+0

Спасибо за повтор, я заменил его, но когда я запускаю данные, все еще не хочу, чтобы их стирали –

0

Почему вы не попробуете это?

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>"; 
}