尝试使用pdo语句删除行,其中行项匹配php变量

时间:2015-02-04 15:06:03

标签: php mysql pdo

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

3 个答案:

答案 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();