Я следил за несколькими учебниками, читал много вопросов на нескольких форумах об утверждении удаления и о том, как использовать его в 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;
}
}
Кроме того, параметризованные запросы не нужны параметры цитируемые. – miken32
Так что, если я удалю * и кавычки, он должен работать? – swydell
Также измените 'name_id = ': name_id'' на' name_id =: name_id' – RiggsFolly