Siema,
pisze prosty skrypt aby opanowac obluge PDO w php. Doszedlem do etapu usuwania danych z bazy. Zrobilem skrypt ktory po przyslaniu (z innego pliku z formularzem) loginu i hasla uzytkownika, sprawdza czy sie zgadzaja, i jesli tak usuwa wpisy tego uzytkownika w innej tabeli. Wyglada to tak:
<?php
require("../../config.php");
try {
$pdo = new PDO('mysql:host='.DB_HOST.';dbname='.DB_TABL.';', DB_AUSER, DB_APASS);
}
catch(PDOException $e) {
echo 'Połączenie z bd nie mogło zostać utworzone: ' . $e->getMessage();
}
print('<?xml version="1.0" encoding="utf-8"?>');
?>
//duzo html'a
<?php
require("../admin/badm_funct.php");
if(isset($_POST['koles'])) {
$dane=$pdo->prepare('SELECT id FROM ludzie WHERE login=:login AND haslo=:haslo');
$dane->bindValue(':login',$_POST['koles'],PDO::PARAM_STR);
$dane->bindValue(':haslo',sha1($_POST['haslo']),PDO::PARAM_STR);
$dane->execute();
$userid = $dane -> fetch();
$dane->closeCursor();
unset($dane);
if($userid!=false) {
$usun=$pdo->prepare('DELETE FROM smieci WHERE Ludzie_id=:id');
$usun->bindValue(':id',$userid,PDO::PARAM_STR);
$ile=$usun->execute();
unset($usun);
if($ile>0) {
print("<br />Usunieto $ile rekordow dla konta: ".$_POST['koles']."<br /><br />");
} else {
print("Nie usunieto zadnego rekordu");
}
} else {
print("<br />Nieprawidłowe dane użytkownika.<br /><br />");
}
} else {
print("<br />Brak danych.<br /><br />");
}
?>
Problem polega na tym, ze podaje dane usera, skrypt sie wykonuje, wyswietla przykladowo "Usunieto 2 rekordow dla konta: zenek", ale rekordy w bazie jak były tak w dalszym ciągu są, nie są usuwane.
Nie wiem o co chodzi, skrypt "mowi" ze usunal, a dane caly czas sa w bazie. Uzytkownik ma prawa do usuwania rekordow w bazie.