- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 Linux 上使用 apache。我转移到了 IIs 服务器。我正在运行 codeigniter 2.0.0
我有一个带有 activerecords 的插入,它将数据从表单插入到数据库中。数据库对每个字段都有默认值。以前这不是问题。自从搬家以来,表单中的每个字段都必须填写,否则我会收到此错误:
Une erreur de base de données s'est produite.
Error Number: 1292
Incorrect date value: '' for column 'DateNaissance' at row 1
INSERT INTO `patients` (`Nom`, `Prenom`, `Initial`, `Responsable`, `DateNaissance`) VALUES ('!teststef354', '!teststef9879', '', '0', '')
Filename: \system\database\DB_driver.php
Line Number: 330
也许我的 codeigniter 基本文件对于当前的 php/mysql 安装来说是旧的,所以我将一次升级一个版本。有什么办法可以解决这个问题吗?
我在该服务器上运行了其他我没有制作的应用程序,例如 mrbs,它工作正常,并且我看到表中有空条目,没有任何问题。
编辑:
这是我的模型
function add_patient($postdata)
{
$resultat=0;
if(!empty($postdata))
{
$resultat=$this->db->insert('patients',$postdata);
}
return $resultat;
}
在我的 Controller 中我有这个:
$postdata = array (
'Nom'=> $_POST['Nom'],
'Prenom'=> $_POST['Prenom'],
'Initial'=> $_POST['Initial'],
'Responsable'=> $_POST['Responsable'],
'DateNaissance'=> $_POST['DateNaissance']
);
我用以下方式调用模型:
$patientsadd=$this->patients_model->add_patient($postdata);
编辑:在 phpmyadmin 中运行 sql 查询给了我同样的错误。在 mysql 命令提示符中运行 SQL 查询也给了我同样的错误,所以这是一个 MySQL 问题。
这是表的创建语句:
CREATE TABLE IF NOT EXISTS `patients` (
`IdPatient` int(11) NOT NULL AUTO_INCREMENT,
`Nom` varchar(50) DEFAULT NULL,
`Prenom` varchar(50) DEFAULT NULL,
`Initial` varchar(4) DEFAULT NULL,
`Responsable` int(11) DEFAULT '0',
`DateNaissance` date DEFAULT '0000-00-00',
PRIMARY KEY (`IdPatient`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=397 ;
编辑:好的,这样就可以了:
这就是我所做的。我确实有比这更多的字段,但出于问题目的我缩短了它。
所有文本字段都可能有问题,因此我将全部编辑它们。至少这样我不会将空值传递给模型,并且 MySQL 不会被它阻塞。它的文本字段确实有默认的 NULL 值(想要这样),所以这应该可以解决这个错误。
$postdata = array();
$postdata['Nom'] = $_POST['Nom'];
$postdata['Prenom'] = $_POST['Prenom'];
$postdata['Initial'] = $_POST['Initial'];
$postdata['Responsable'] = $_POST['Responsable'];
if (isset($_POST['DateNaissance']))
{}else {$postdata['DateNaissance'] = $_POST['DateNaissance']; }
感谢所有评论者帮助我找出问题的根源!
我仍然认为我有问题,我犯了一个错误,
这部分:
if (isset($_POST['DateNaissance']))
{}else {$postdata['DateNaissance'] = $_POST['DateNaissance']; }
应该是:
if (empty($_POST['DateNaissance']))
{}else{$postdata['DateNaissance'] = $_POST['DateNaissance']; }
最佳答案
您可以将 Controller 信息更改为:
$postdata = array (
'Nom'=> $_POST['Nom'],
'Prenom'=> $_POST['Prenom'],
'Initial'=> $_POST['Initial'],
'Responsable'=> $_POST['Responsable'],
'DateNaissance'=> ($_POST['DateNaissance']=='') ? 0 : $_POST['DateNaissance'];
);
看到的是,删除了错误 - 我收到了错误消息(更改之前)
“第 1 行‘DateNaissance’列的数据被截断”
关于php - 从 linux/apache 移至 IIs,codeigniter DB_driver.php 给我错误,我不能再有空字段了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17148414/
我有一个名为 FeedView 的 View ,由 FeedViewController 处理。 我还有一个名为“NearestStore”的 XIB,它由一个名为“NearestStoreViewC
我有一个警报表,其中 tr 元素是使用 JS 动态添加/删除的。问题是它有一个 border-top 将它与上面的内容分开,当表格为空时我想隐藏这些内容。我试过 :empty 和 display:no
我是一名优秀的程序员,十分优秀!