首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么mysql默认值不能工作?

为什么mysql默认值不能工作?
EN

Stack Overflow用户
提问于 2017-10-31 01:33:17
回答 2查看 123关注 0票数 0

我一直在学习php,目前正在尝试写一篇简单的文章/博客。我希望用户输入文章的"Title“和"Body”,但是 Author 是不必要的,因此我希望Author的默认值是“匿名的”。因此,当用户提交一个帖子时,它将有一个id、title、name、body。如果没有指定"name“,它将具有”匿名“的值

我的post table 链接

这里是我的php代码

代码语言:javascript
复制
<?php
$errorClass = 'errorClass';

$msg = '';
$msgClass = 'alert-danger';


if(isset($_POST['submit'])){
    // get data
    $title = trim(htmlspecialchars($_POST['title']));
    $name = trim(htmlspecialchars($_POST['name']));
    $post = trim(htmlspecialchars($_POST['post']));

    if(!empty($title) AND !empty($post)){

        // connect to the database
        $host = "localhost";
        $username = "root";
        $password = "";
        $db = "blog";


        $conn = new mysqli($host,$username,$password,$db);
        if($conn->connect_error){
            echo "Error:". $conn->connect_error;
        } else {
            $sql = "INSERT INTO post(title,name,post) VALUES ('$title','$name','$post')";
            if($conn->query($sql)){
                $msg = 'Success';
                $msgClass = 'alert-success';
            } else {
                echo " error" .mysqli_error($conn);
            }
        }




    } else {
        $msg = 'Please fill in empty areas.';
        $msgClass = 'alert-danger';

    }

}


?>

,还有HTML。

代码语言:javascript
复制
<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <link rel="stylesheet" href="https://bootswatch.com/lumen/bootstrap.min.css">
    <script>
        function sendTo(){
            setTimeout(function () {
                window.location.href = "http://localhost/blog/";
            }, 1000);
        }

        function validateInput(){
            if(document.myForm.title.value === "" && document.myForm.body.value === ""){
                document.myForm.title.style.borderColor = 'red';
                document.myForm.body.style.borderColor = 'red';
                document.myForm.title.focus();
                return false;
            }
            return true;
        }

    </script>
    <title>Document</title>
</head>
<body">
<nav class="navbar navbar-default">
    <div class="container-fluid">
        <div class="navbar-header">
            <a class="navbar-brand" href="#">MyBlog</a>
        </div>
        <ul class="nav navbar-nav">
            <li><a href="index.php">Home</a></li>
            <li><a href="new_post.php">Create Post</a></li>
        </ul>
    </div>
</nav>
<div class="container">
    <?php if($msg != ""):  ?>
        <div class="alert <?php echo $msgClass; ?>"><?php echo $msg; ?></div>
    <?php endif; ?>
    <div class="jumbotron">
        <form class="form-horizontal" method="post" name="myForm" onsubmit="return validateInput()" action="<?php echo $_SERVER['PHP_SELF']; ?>">
            <fieldset>
                <legend>Create new blog post</legend>
                <div class="form-group">
                    <label  class="col-lg-2 control-label">Title</label>
                    <div class="col-lg-10">
                        <input type="text" class="form-control"  id="title" placeholder="Enter a title for your post..."  name="title" autocomplete="off" style="background-image: url(&quot;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAASCAYAAABSO15qAAAAAXNSR0IArs4c6QAAAPhJREFUOBHlU70KgzAQPlMhEvoQTg6OPoOjT+JWOnRqkUKHgqWP4OQbOPokTk6OTkVULNSLVc62oJmbIdzd95NcuGjX2/3YVI/Ts+t0WLE2ut5xsQ0O+90F6UxFjAI8qNcEGONia08e6MNONYwCS7EQAizLmtGUDEzTBNd1fxsYhjEBnHPQNG3KKTYV34F8ec/zwHEciOMYyrIE3/ehKAqIoggo9inGXKmFXwbyBkmSQJqmUNe15IRhCG3byphitm1/eUzDM4qR0TTNjEixGdAnSi3keS5vSk2UDKqqgizLqB4YzvassiKhGtZ/jDMtLOnHz7TE+yf8BaDZXA509yeBAAAAAElFTkSuQmCC&quot;); background-repeat: no-repeat; background-attachment: scroll; background-size: 16px 18px; background-position: 98% 50%; cursor: auto;">
                    </div>
                </div>
                <div class="form-group">
                    <label  class="col-lg-2 control-label">Name</label>
                    <div class="col-lg-10">
                        <input type="text" class="form-control" placeholder="Enter your name..."  name="name" autocomplete="off" style="background-image: url(&quot;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAASCAYAAABSO15qAAAAAXNSR0IArs4c6QAAAPhJREFUOBHlU70KgzAQPlMhEvoQTg6OPoOjT+JWOnRqkUKHgqWP4OQbOPokTk6OTkVULNSLVc62oJmbIdzd95NcuGjX2/3YVI/Ts+t0WLE2ut5xsQ0O+90F6UxFjAI8qNcEGONia08e6MNONYwCS7EQAizLmtGUDEzTBNd1fxsYhjEBnHPQNG3KKTYV34F8ec/zwHEciOMYyrIE3/ehKAqIoggo9inGXKmFXwbyBkmSQJqmUNe15IRhCG3byphitm1/eUzDM4qR0TTNjEixGdAnSi3keS5vSk2UDKqqgizLqB4YzvassiKhGtZ/jDMtLOnHz7TE+yf8BaDZXA509yeBAAAAAElFTkSuQmCC&quot;); background-repeat: no-repeat; background-attachment: scroll; background-size: 16px 18px; background-position: 98% 50%; cursor: auto;">
                    </div>
                </div>
                <div class="form-group">
                    <label class="col-lg-2 control-label">Textarea</label>
                    <div class="col-lg-10">
                        <textarea class="form-control" rows="7" name="post" id="body"></textarea>
                        <span class="help-block">Write your feelings...</span>
                    </div>
                </div>
                <div class="form-group">
                    <div class="col-lg-10 col-lg-offset-2">
                        <button type="reset" class="btn btn-default" onclick="sendTo()">Cancel</button>
                        <button type="submit" class="btn btn-primary" name="submit">Submit</button>
                    </div>
                </div>
            </fieldset>
        </form>
    </div>
</div>
</body>
</html>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-10-31 01:38:04

您能否检查name字段是否为空,并在将其插入mysql之前为其赋值?

代码语言:javascript
复制
if (empty($name)){
$name = 'Anonymous';
}
票数 0
EN

Stack Overflow用户

发布于 2017-10-31 01:42:05

在插入数据之前使用条件,

代码语言:javascript
复制
if(trim(htmlspecialchars($_POST['name']))){
  $name = trim(htmlspecialchars($_POST['name']));
}else{
  $name = 'Anonymous';
}

希望这会有所帮助:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47026644

复制
相关文章

相似问题

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