У меня есть один табличный test
в котором я хочу удалить запись. Я использую запрос delete, но никакого эффекта. Я попытался запустить его на вкладке SQL в phpmyadmin
и он работает там. Но в php
коде он не работает. Вот код HTML
<form action="home.php" method="post">
<button class="button button3" type="button" onclick="return
toggleMe('del_tst')">Delete Test</button><br>
<div id="del_tst" style="display:none">
<input type="date" class="textstyle" name="tst_date" method="post"
placeholder="Enter test date" />
<button type="submit" class="subbutton button1" value="Delete"
method="post"
name="del_tst">Delete</button><br/>
</div>
</form>
и вот PHP-код
if(isset($_POST['del_tst'])){
$tst_date= date('d-m-Y', strtotime( $_POST['tst_date'] ));
try{
$stmt_tst=$conn->prepare("DELETE FROM 'test' WHERE 'date'=:tst_date");
$stmt_tst->bindparam(":tst_date",$tst_date);
$result=$stmt->execute();
if($result===TRUE)
{
if(($stmt->rowCount())>0)
{
echo "<font color='white'> <i>record Deleted successfully!</i></font>";
}
else{
echo "<font color='white'> <i>No such record exists!</i></font>";
}
}
else{
echo "Something Went Wrong!";
}
return true;
}
catch(PDOException $e)
{
echo $e->getMessage();
return false;
}
}
Я пытаюсь удалить запись с использованием date
в состоянии WHERE
, но не работает. Здесь снимок экрана базы данных
Пожалуйста, будьте со мной, чтобы решить эту проблему.
Эта часть неверна:
$stmt_tst=$conn->prepare("DELETE FROM 'test' WHERE 'date'='.$tst_date.'");
$stmt_tst->bindparam(":tst_date",$tst_date);
$result=$stmt->execute();
вы должны изменить его так:
$stmt_tst=$conn->prepare("DELETE FROM 'test' WHERE 'date'=:tst_date");
$stmt_tst->bindparam(":tst_date",$tst_date);
$result=$stmt->execute();
Подробнее см. В документации.
Кроме того, если date
является столбцом DATE
MySQL, вы должны использовать даты ISO8601 (первый год):
$tst_date= date('Y-m-d', strtotime( $_POST['tst_date'] ));
date
- это простой столбец varchar
вы должны исправить свою форму:
<form name="myForm" action="home.php" method="post">
<input type="date" class="textstyle" name="tst_date" placeholder="Enter test date" />
<input type="submit" class="subbutton button1" value="Delete" name="del_tst">Delete</button><br/>
</form>
Попробуйте эту легкую версию, которая должна публиковать значения на странице PHP. Затем используйте средство проверки браузера, чтобы проверить, правильно ли он отправлен
NB это работает вместе с @bart ответом
input
на тег button
. Но никакого эффекта.
Я не уверен, но я бы попытался изменить ваш запрос:
("DELETE FROM 'test' WHERE 'date'= '".$tst_date."'");
Обратите внимание на дополнительные двойные кавычки вокруг $ tst_date