2014-09-30 2 views
2
warning mktime() expects parameter 4 to be long string 

Это ошибка, которую я получаю, когда пытаюсь сохранить дату рождения в базе данных mysql.warning mktime() ожидает, что параметр 4 будет длинной строкой

Вот HTML код:

<!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> 

А вот код Php я использовал:

<?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"; 
} 

Может кто-то пожалуйста, руководство меня, чтобы добавить дату рождения в база данных?

+1

db - это строка, например, сентябрь, и поэтому она не разбирает ее. –

+0

не могли бы вы объяснить мне, потому что я только что начал программировать –

ответ

1

Так как вам нужно вводить месяцев их численное представление, вам нужно выпадающие значения месяцев, как это:

<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> 

Так что, когда вы используете mktime(), это будет правильный параметр месяцы.

INT указываете ей ([INT $ час = дата ("Н") [, Int $ минута = дата ("я") [, Int $ второй = дата ("с") [, int $month = date("n") [ , INT $ день = дата ("J") [, Int $ в год = дата ("Y") [, Int $ is_dst = -1]]]]]]])

Посмотрите на параметр month , Она нуждается в формат date('n') который эквивалентов на:

Числовое представление месяца без ведущих нулей

Обязательное примечание:

Please, don't use mysql_* functions in new code. Они больше не поддерживаются and are officially deprecated. См. red box? Узнайте о prepared statements вместо этого, и используйте PDO или MySQLi - this article поможет вам решить, какой. Если вы выберете PDO, here is a good tutorial.

+1

Спасибо, что его работала сейчас –

+0

@sandeepSK уверен, что мне это помогло – Ghost

+0

Я хочу экспортировать свои извлеченные данные (которые извлекаются на странице) из базы данных в формат pdf или excell, можете ли вы направить меня в этом –

0

Параметры раскрывающегося списка для db должны иметь числовые значения.

Смежные вопросы