Я работаю со структурой 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();
}
}
Во-первых, вы назвали 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')."')";
Других решений пока нет …