尝试使用行项目匹配 php 变量的 pdo 语句删除行

Trying to delete row using pdo statement where row item matches php variable

我正在尝试接收文本输入并将其存储为变量。然后我使用 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 table 中显示数据,它也在工作。所以我可以假设我正在连接到数据库。

这样试试:

$query = $connect->prepare("DELETE FROM gigs WHERE date='".$gigDate."'");

顺便说一句,如果您使用的是 PDO,则没有充分的理由对这样的值进行硬编码。

试试这个方法,为什么要为 table 和列名使用额外的 single quotes?标识符引号字符是反引号(`)

DELETE FROM  `gigs` WHERE date='".$gigDate."'

我希望这对你有用:

$query = $connect->prepare("DELETE * FROM 'gigs' WHERE 'date'= :date");
$query->bindParam(':date', $gigDate);
$query->execute();