closecursor() błąd

0

Witam
Jestem na etapie nauki PHP. Napisałem pogram logowanie. Kod działa prawie poprawnie. Gdy chcę już zakończyć sesję dostaję taki błąd:
Fatal error: Call to a member function closeCursor() on integer in ... on line 23
Mój kod:

<?php
include('connect.php');
$login = $_POST['usernamesignup'];
$email = $_POST['emailsignup'];
$password = $_POST['passwordsignup'];

$result = $dbh -> exec('INSERT INTO user (login, password, data, email) VALUES ("'.$login.'", "'.$password.'",NOW() , "'.$email.'")');
if($result !== FALSE )
{
    echo 'Dodano użytkownia ' .$dbh->lastInsertId();
    header('Location: index.html');
}
 else 
     {
    echo 'wystąpił błąd';
}
$result -> closeCursor();
$result = NULL;
$dbh = NULL;
?>

Co robię źle i dlaczego $result -> closeCursor(); nie działa poprawnie ?

0

bo result zwraca true czyli 1, przecież pisze ci w komunikacie że na integer próbujesz wywołać metodę.. powinieneś to zrobić na obiekcie dbh. A najlepiej w ogóle tego nie robić, i tak sam sobie posprząta

0

Czy aby na pewno posprząta. Wszędzie gdzie czytam trombiną by kończyć i sprzątać po sobie by móc na nowo wywoływać i by śmieci nie było. To jak to jest z tym zakańczaniem i sprzątaniem ?

0

Po pierwsze poczytaj o SQL Injection, bo to co napisałem wyżej jest podatne na ten właśnie atak: https://stackoverflow.com/a/60496/4617687
Po drugie dostajesz taki błąd, ponieważ metoda exec() zwraca liczbę kolumn, które zostały zmodyfikowane lub usunięte przez wykonanie tego zapytania, a nie object PDOStatement - http://php.net/manual/en/pdo.exec.php

1 użytkowników online, w tym zalogowanych: 0, gości: 1