Ошибка при вводе даты в Mysql с использованием PHP: 000-00-00

Я работаю со структурой MVC и у меня появляется ошибка при вводе даты в области TExt
В этой форме YYYY-MM-DD Ex: 2014-09-17

Вставьте в Mysql LIke This 0000-00-00

Это вид

   <html>
<head></head>
<body>

<div class="register">
<form action="InterventionController.php" method="POST">
<h1> Ajouter Une Date Pour L'intervention: </h1>
<input required="required" name="Date" class="input-group-addon" type="text" placeholder="Date Sous Forme :  yy-mm-dd "><input required="required" class="btn-primary btn-lg" type="submit" name="submit" value="Ajouter L'intervention"></form>

</div></body></html>

и это контроллер

     <?phpif($_POST){

if(isset($_POST['submit']) AND $_POST['submit'] == "Ajouter L'intervention" ){

$data['Date']  =      $_POST['Date'];try {
include 'models\AddInterventionModel.php';
new AddInterventionModel($data);
} catch (Exception $exc) {

echo $exc->getMessage();
}
header("location:index.php?page=Demande_Inter");}}
else {
include 'Login.php';
}?>

И это модуль

<?phpclass AddInterventionModel {private $Date;

private $cnx;

function __construct($data) {

if(is_array($data)){

$this->setData($data);
}
else
{
throw new Exception("Error Data Should Be An Array");

}// Connect To Database
$this->connectToDb();

//Insert User Data

$this->AddInterventionModelF();

}

private function setData($data)
{
$this->Date      = $data['$Date'];}

private function connectToDb() {
include 'models/Database.php';
$vars = "include/vars.php";
$this->cnx = new Database($vars);

}

function AddInterventionModelF ()

{
$query = "INSERT INTO `intervention` (`ID_I`, `DATE_I`) VALUES('','$this->Date')";

$sql = mysql_query($query);

if($sql){
echo 'Added Sussecfully';}
else
{

throw new Exception("Error : not Added");
}

}

function close(){

$this->cnx->close();
}

}

-4

Решение

Во-первых, вы назвали input «Mname», но вы звоните $_POST['date'] в контроллере (поэтому вы должны изменить «Mname» в «date».

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

Наконец, подумайте об использовании этого

$dateString = $_POST['date'];
if (!empty($dateString)) {
$date = new \DateTime($dateString);
$date->setTime(0, 0, 0);
}

а затем в запросе MySQL:

$query = "INSERT INTO `intervention` (`ID_I`, `DATE_I`) VALUES('','".$date->format('Y-m-d H:i')."')";
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]