首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何解决使用php将所选选项存储到数据库中错误

如何解决使用php将所选选项存储到数据库中错误
EN

Stack Overflow用户
提问于 2018-08-20 05:56:51
回答 1查看 64关注 0票数 0

在提交时,我得到以下错误

错误: SQLSTATE23000:完整性约束冲突: 1048列'item_selected‘不能为null

Ticket.php

代码语言:javascript
复制
<form id="contact-form" method="post" action="ticketSupport.php" role="form">
    <div class="messages"></div>
    <div class="controls">
        <div class="row">
            <div class="col-md-6">
                <div class="form-group">
                    <label for="form_item_select" class="mbr-white text-center">Select item <span class="text-red">*</span></label>
                    <select id="form_item_select" name="item_select" class="custom-select" required="required" data-error="Please specify your need.">
                        <option>Select item</option>
                        <option value="theme1">Example template (1)</option>
                        <option value="theme2">Example 2 template (5)</option>
                        <option value="theme3">Example 3 template (15)</option>
                    </select>
                    <div class="help-block with-errors"></div>
                </div>
            </div>
            <div class="col-md-6">
                <div class="form-group">
                    <label for="form_help_select" class="mbr-white text-center">Help topic <span class="text-red">*</span></label>
                    <select id="form_help_select" name="help_selected" class="custom-select" required="required" data-error="Please specify your need.">
                        <option>Select help topic</option>
                        <option value="Feedback">Feedback</option>
                        <option value="General inquiry">General inquiry</option>
                        <option value="Report a problem">Report a problem</option>
                        <option value="Report a problem / Access Issue">Report a problem / Access Issue</option>
                    </select>
                    <div class="help-block with-errors"></div>
                </div>
            </div>
        </div>
        <div class="row">
            <div class="col-md-6">
                <div class="form-group">
                    <label for="form_email" class="mbr-white text-center">Email <span class="text-red">*</span></label>
                    <input id="form_email" type="email" name="email" class="form-control" readonly placeholder="Please enter your email *" required="required" data-error="Valid email is required." value="<?php echo $userData['email']; ?>">
                    <div class="help-block with-errors"></div>
                </div>
            </div>
            <div class="col-md-6">
                <div class="form-group">
                    <label for="form_phone" class="mbr-white text-center">Phone number</label>
                    <input id="form_phone" type="text" name="phone" class="form-control" readonly placeholder="Please enter your phone number *" required="required" data-error="Valid phone is required." value="<?php echo $userData['phone']; ?>">
                    <div class="help-block with-errors"></div>
                </div>
            </div>
        </div>
        <div class="row">
            <div class="col-md-12">
                <div class="form-group">
                    <label for="form_message" class="mbr-white text-center">Ticet details <span class="text-red">*</span></label>
                    <p class="mbr-white small">Please describe your issue</p>
                    <textarea id="form_message" name="message" class="form-control" placeholder="Details on the reason(s) for opening the ticket. *" rows="4" required="required" data-error="Please, leave us a message."></textarea>
                    <div class="help-block with-errors"></div>
                </div>
            </div>
            <div class="col-md-12">
                <input type="submit" class="btn btn-primary btn-block sgn" value="Create ticket">
            </div>
        </div>
    </div>
</form>

ticketSupport.php页面:

代码语言:javascript
复制
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "db_name";

try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username,
    $password);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

// prepare sql and bind parameters
$stmt = $conn->prepare("INSERT INTO tickets (item_selected, help_selected, 
email, phone, message) 
VALUES (:item_selected, :help_selected, :email, :phone, :message)");
$stmt->bindParam(':item_selected', $item_selected);
$stmt->bindParam(':help_selected', $help_selected);
$stmt->bindParam(':email', $email);
$stmt->bindParam(':phone', $phone);
$stmt->bindParam(':message', $message);

// insert a row
$item_selected = $_POST["item_selected"];
$help_selected = $_POST["help_selected"];
$email = $_POST["email"];
$phone = $_POST["phone"];
$message = $_POST["message"];
$stmt->execute();


header('Location: ticket-status');
}
catch(PDOException $e)
{
echo "Error: " . $e->getMessage();
}
$conn = null;
?>

问题出在哪里?我想在数据库中存储选项时,用户选择它。

EN

回答 1

Stack Overflow用户

发布于 2018-08-20 07:08:09

我建议对item_select组合框进行以下更改

代码语言:javascript
复制
<select id="form_item_select" name="item_selected" class="custom-select" required="required" data-error="Please specify your need.">
   <option>Select item</option>
   <option value="theme1">Example template (1)</option>
   <option value="theme2">Example 2 template (5)</option>
   <option value="theme3">Example 3 template (15)</option>
 </select>

更改字段的名称,不允许空选择,因为此字段是必填字段,默认值如下

代码语言:javascript
复制
<select id="form_item_select" name="item_select" class="custom-select" required="required" data-error="Please specify your need.">
 <option value="theme1" selected>Example template (1)</option>
 <option value="theme2">Example 2 template (5)</option>
 <option value="theme3">Example 3 template (15)</option>   
</select>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51922145

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档