warning mktime() expects parameter 4 to be long string

10,213

Since you need to input months as their numerical representation, you need the dropdown values of months like this:

<option disabled selected>Month</option>
<option value="1">January</option>
<option value="2">February</option>
<option value="3">March</option>
<option value="4">April</option>
<option value="5">May</option>
<option value="6">June</option>
<option value="7">July</option>
<option value="8">August</option>
<option value="9">September</option>
<option value="10">October</option>
<option value="11">November</option>
<option value="12">December</option>

So that when you use mktime(), it will be the correct parameter to the months.

int mktime ([ int $hour = date("H") [, int $minute = date("i") [, int $second = date("s") [, int $month = date("n") [, int $day = date("j") [, int $year = date("Y") [, int $is_dst = -1 ]]]]]]] )

Look at the month parameter. It needs the format date('n') which equivalents to:

Numeric representation of a month, without leading zeros

Obligatory note:

Please, don't use mysql_* functions in new code. They are no longer maintained and are officially deprecated. See the red box? Learn about prepared statements instead, and use PDO or MySQLi - this article will help you decide which. If you choose PDO, here is a good tutorial.

Share:
10,213
sandeep S K
Author by

sandeep S K

Updated on June 04, 2022

Comments

  • sandeep S K
    sandeep S K almost 2 years
      warning mktime() expects parameter 4 to be long string
    

    This is the error I am getting when I try to store Date of birth into a mysql database.

    Here is the HTML code:

     <!doctype html>
        <html>
        <head>
        <meta charset="utf-8">
        <title>Registration</title>
        <link href='http://fonts.googleapis.com/css?family=Josefin+Sans' rel='stylesheet' type='text/css'>
        <style>
        #container{
        width:350px;
        height:auto;
        float:left;
        font-family: 'Josefin Sans', sans-serif;
        color:#82ABEA;
        }
        label{
        display:block;
        margin-bottom:5px;
        }
        fieldset{
        border-color:#82ABEA;
        }
        button{
        background-color:#900;
        color:#FFF;
        border:none;
        box-shadow:none;
        width:80px;
        height:30px;
        }
        </style>
        </head>
    
        <body>
        <div id="container">
        <form method="post" action="save_reg.php">
        <fieldset>
        <legend><b>Register Here</b></legend>
    
    
        <label>Date Of Birth</label>
        <select name="db">
        <option selected>Month</option>
        <option>January</option>
        <option>February</option>
        <option>March</option>
        <option>April</option>
        <option>May</option>
        <option>June</option>
        <option>July</option>
        <option>August</option>
        <option>September</option>
        <option>October</option>
        <option>November</option>
        <option>December</option>
    
        </select>
        <select name="dbd">
        <option selected>Day</option>
        <option>01</option>
        <option>02</option>
        <option>03</option>
        <option>04</option>
        <option>05</option>
        <option>06</option>
        <option>07</option>
        <option>08</option>
        <option>09</option>
        <option>10</option>
        <option>11</option>
        <option>12</option>
        </select>
    
        <select name="dby">
        <option selected>Year</option>
        <option>2005</option>
        <option>2006</option>
        <option>2007</option>
        <option>2008</option>
        <option>2009</option>
        <option>2010</option>
        <option>2011</option>
        <option>2012</option>
        <option>2013</option>
        <option>2014</option>
        <option>2015</option>
        <option>2016</option>
        </select><br/><br/>
    
        <button><b>Submit</b></button>
        </fieldset>
        </form>
        </div>
        </body>
        </html>
    

    And here is The Php code I have used:

    <?php 
    $connection = mysqli_connect("localhost" , "root" , "", "register");
    if(mysqli_connect_errno()){
        echo"Connection Failed" . mysqli_connect_errno();
    }else{
    echo "Connection Succesfull";
    }
    
    $db= $_POST['db'];
    $dbd= $_POST['dbd'];
    $dby= $_POST['dby'];
    
    $date = date("Y-m-d", mktime(0,0,0,$db, $dbd, $dby));
    
    $sql = "INSERT INTO register_form(dateb) VALUES('$date')";
    
    if(!mysqli_query($connection, $sql)){
    echo"Data is not saved";
    }else{
    echo $_POST['firstname'] . " " . $_POST['lastname'] . "your data is saved";
    }
    

    Can someone please guide me to add date of birth to the database?