2017-02-02 1 views
-1

Я следил за несколькими учебниками, читал много вопросов на нескольких форумах об утверждении удаления и о том, как использовать его в pdo php. Я привязал параметры, не привязывал параметры, использовал подготовленные функции, определил свои переменные и индексы. Когда я нажимаю ссылку удаления на индексной странице, программа перенаправляет на страницу удаления без ошибок, но не удаляет строку из таблицы. Я сделал мою программу небольшой с двумя столбцами, чтобы сделать ее максимально простой. И я использовал точный синтаксис с каждым учебным пособием и примером, которым я следил, пока я не исчерпал себя в течение трех дней. Если кто-нибудь может показать мне, что я не делаю правильно, я был бы признателен. Я отправлю код с индексной страницы со ссылкой и на странице delete.php. Во всем уважении Фред-и-я прочитал все ответы. Truncate не применяется ко мне, потому что я не хочу удалять таблицу, а только строку. Я не хочу удалять все строки, поэтому я использую предложение WHERE. В отличие от других вопросов, которые похожи, я не получаю никаких ошибок. Я переписал свой код на то, что было предложено, но мой синтаксис удаления по-прежнему не удаляет строку на моей индексной странице. Мое предложение WHERE указывает на имя_ид, который является основным ключом в моей базе данных.как получилось мое заявление на удаление в pdo php crud doen't work

 <p><td><a href="delete.php?name_id=<?php echo $row['name_id']; ?>">Delete</a></td></p> 
    And here is the code from the delete page. 

    require_once 'debase.php'; 

// Get the name to delete 
if(isset($_GET['name_id'])){ 
$name_id = $_GET['name_id']; 
try{ 
    //$dns ="mysql:host=localhost;dbname=$db;charset=$charset"; 
$conn = new PDO($dsn,$user,$pass); 
$stmt = $conn->prepare("DELETE * FROM student WHERE name_id=':name_id'"); 
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
$stmt->bindValue(':name_id',$name_id, PDO::PARAM_STR); 
$stmt->execute(); 

} catch (PDOException $e){ 
$error_message = $e->getMessage(); 
$conn = null; 
} 
} 

enter image description here

ответ

1

Ваш синтаксис SQL неверен.
Вы просто DELETE FROM ... и не DELETE * FROM ...

и удалить кавычки вокруг ':name_id'

+0

Кроме того, параметризованные запросы не нужны параметры цитируемые. – miken32

+0

Так что, если я удалю * и кавычки, он должен работать? – swydell

+0

Также измените 'name_id = ': name_id'' на' name_id =: name_id' – RiggsFolly

Смежные вопросы