php - 无法提交到数据库

标签 php mysql

使用 MVC 框架,我编写了一些旨在向数据库添加信息的代码。

在 Index.php 中( View )

<form method="post" action="<?php echo URL;?>note/updatetopic">
    <select>
    <option value="1">Coasts</option>
    <option value="2">Energy Demand</option>
    </select>
    <input type="submit" name="topic_selection" value="Choose" />
</form>

上面的代码旨在发布有关用户想要修改的内容的信息。

在 note.php( Controller )中

public function updatetopic()   {

    if (isset($_POST['topic_selection'])) {
            $note_model = $this->loadModel('Note');
            $note_model->updatetopic($_POST['topic_selection']);
        }
    header('location: ' . URL . 'note');
}

上面的代码旨在从index.php中的代码中获取信息并将其转发到运行函数的note_model上。

在 note_model.php(模型)中

public function updatetopic($topic_selection)
{
$topic_selection = strip_tags($topic_selection);

$sql = "INSERT INTO users (topic_revising) VALUES (:topicselected) WHERE user_id=:user_id";
$query = $this->db->prepare($sql);
$query->execute(array(':topicselected' => $topic_selection, ':user_id' => $_SESSION['user_id']));

$count =  $query->rowCount();
if ($count == 1) {
    return true;
} else {
    $_SESSION["feedback_negative"][] = TOPIC_UPDATE_FAILED;
}
// default return
return false;
}

这旨在验证提交的信息并将其插入数据库,但它输出:

$_SESSION["feedback_negative"][] = TOPIC_UPDATE_FAILED;

有人可以帮助我并告诉我我做错了什么吗?谢谢。

最佳答案

您没有为选择的标签选择任何名称:

尝试这样:

 <select name="topic">
     <option value="1">Coasts</option>
    <option value="2">Energy Demand</option>
 </select>

现在获取您的下拉列表的值:

if (isset($_POST['topic'])) {
            $note_model = $this->loadModel('Note');
            $note_model->updatetopic($_POST['topic']);
 // $_POST['topic'] == 1 or 2 depends upon selection
        }

你可以像这样改变它:

 <select name="topic">
     <option value="coasts">Coasts</option>
    <option value="Energy_Demand">Energy Demand</option>
 </select>

现在您将获得所选列表项的实际值并可以进一步移动......

关于php - 无法提交到数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23011251/

相关文章:

php - 带有消息 'could not find driver' Laravel 和 Postgresql 错误的 PDOException

php - MYSQL 和 PHP 循环失败

PHP 搜索 MySQL

mysql - 自动增量已自动重置回 1

mysql - Jenkins-选择参数-mysql数据库查询返回列表

MySQL 查询用 GROUP BY HOUR 填充 NULL 值

mysql - 用一个查询插入两个表?

php - 在 Laravel 中为 CSRF token 设置 httpOnly 标志

php - 在什么场景下使用json_encode()比使用serialize()更好?

php - Codeigniter 查询不插入