我正在尝试接收文本输入并将其存储为变量。然后我使用PDO执行一个查询,该查询从MySQL数据库中删除一行,该行包含与存储在变量中的文本相匹配的文本。显然这不起作用。我通常的怀疑是我的疑问。我也一直在玩具有约束力的参数,但这也没有用。
<?php
if (isset($_POST['gigDate'])){
$gigDate = $_POST['gigDate'];
if (!empty($gigDate)){
require_once("dbconnect.php");
$query = $connect->prepare("DELETE * FROM 'gigs' WHERE 'date'='".$gigDate."'");
$query->execute();
}
else
{
echo "failure";
}
require_once('gui.php');
}
?>
这是我的html表单
<h3>Delete a gig by date. (copy and paste gig date)</h3>
<?php include ("gigDelete.php");?>
<form action="gigDelete.php" method="post">
<input type="text" name="gigDate"></input>
<button type="submit" value="Delete" name="Delete">delete gig</button>
</form>
我收到一条错误消息,指出我的错误报告无效。哈哈。所以我删除了它。我上周刚刚学会了PDO,我不确定它是否适合这项任务。我的经验如何闪耀!
这是我第一次使用php GUI的最后一部分。我可以上传到数据库只是花花公子,我在html表中显示数据,这也是有效的。所以我可以假设我正在连接数据库。
答案 0 :(得分:1)
试试这样:
$query = $connect->prepare("DELETE FROM gigs WHERE date='".$gigDate."'");
顺便说一句,如果您使用PDO,没有充分的理由对这些值进行硬编码。
答案 1 :(得分:1)
尝试这种方式,为什么要对表名和列名使用额外的single quotes
?标识符引号字符是反引号(`)
DELETE FROM `gigs` WHERE date='".$gigDate."'
答案 2 :(得分:-1)
我希望这对你有用:
$query = $connect->prepare("DELETE * FROM 'gigs' WHERE 'date'= :date");
$query->bindParam(':date', $gigDate);
$query->execute();