无法从表中删除值包含中间空格的条目?

时间:2016-05-28 05:29:52

标签: php mysql

我可以删除包含单个单词的条目,例如'Tomato'或'Potato'。 无法删除包含多个单词的条目,例如'pumpkin soup'。

为什么?

这是我的PHP:

<?php
                   if(!empty($_POST['event_name_box']))
                   {
                    $del_event=$_POST['event_name_box'];
                    $sth = $conn->prepare("DELETE FROM event WHERE event_name=:del");
                    $sth->execute(array(':del'=>$del_event));
                    header( "Refresh: 0;" );
                   }
            ?>

这就是我在下拉列表中加载值的方法:

 <select name="event_name_box" value="event_name_box" style="width:220px; padding-left:40px;font-size:18px;font-family:Roboto;">
            <?php
            $sth = $conn->prepare('Select event_name From event');
            $sth->execute();
            $data = $sth->fetchAll();   
            foreach ($data as $row ){
                if($row['event_name']!="")
            echo " <option id=\"EventName\" name=\"EventName\" value=".$row['event_name'].">".$row['event_name']."</option>";
            }
            ?> 
            </select><br>
            <input type="submit" name="submit" style="width:50%;padding:10px" value="Delete"</input>

2 个答案:

答案 0 :(得分:1)

问题在于您的HTML(特别是<option>标记)。您的值未被引用,因此该空间会破坏POST中发送的值。将选项的回声更改为以下内容:

echo '<option value="' . $row['event_name'] . '">' . $row['event_name'] . '</option>';

(您也不应该在name代码上使用id<option>。)

答案 1 :(得分:0)

您没有引用value标记中的<option内容,因此浏览器无法正确解释该内容。

PHP脚本中的简单跟踪应该明显表明它没有收到适当的内容。