gpt4 book ai didi

php - SQL 插入日期总是出现 NULL

转载 作者:行者123 更新时间:2023-11-29 12:39:18 25 4
gpt4 key购买 nike

我正在尝试使用上传页面通过以下代码插入我的数据库:

if($file!=="")
{

echo "<br/>".$file;
$handle = fopen($file, "r");
$row = 0;

$delete_records = mysql_query("DELETE FROM affiliationagreements");
$delete_records = mysql_query("DELETE FROM college");
$delete_records = mysql_query("DELETE FROM program");
$delete_records = mysql_query("DELETE FROM facility");
$delete_records = mysql_query("DELETE FROM submitor");
$delete_records = mysql_query("DELETE FROM location");
//will loop each record in the CSV file
while(($fileop = fgetcsv($handle,1000,",")) !== false )
{
//columns names of the CSV file are not needed
if($row==0)
{
$row++;
}
else
{
//accept apostrophes in the strings
$fileop = array_map("mysql_real_escape_string",$fileop);

$sql = mysql_query("INSERT INTO affiliationagreements(id, AANumber, Facility, Submitor, Program, Location, College, SubmissionDate, Action, EffectiveDate, Status, ExpirationDate)
VALUES('',
'$fileop[0]',
'$fileop[1]',
'$fileop[2]',
'$fileop[3]',
'$fileop[4]',
'$fileop[5]',
'$fileop[11]',
'$fileop[23]',
'$fileop[24]',
'$fileop[25]',
'$fileop[26]')
")or die(mysql_error());

仅举一个示例,当我上传 CSV 文件以添加值时,我在控制台中将它们打印出来,并看到这些值被正确读取,而且确实如此。但是,一旦我的 php 脚本结束并且我返回主页,我的日期都为空。它们都不是 csv 文件中反射(reflect)的值。这是我的数据库的架构:

CREATE TABLE `affiliationagreements` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`AANumber` varchar(20) DEFAULT NULL,
`Facility` varchar(150) DEFAULT NULL,
`Submitor` varchar(50) DEFAULT NULL,
`Program` varchar(60) DEFAULT NULL,
`Location` varchar(50) DEFAULT NULL,
`College` varchar(50) DEFAULT NULL,
`SubmissionDate` date DEFAULT NULL,
`Action` varchar(50) DEFAULT NULL,
`EffectiveDate` date DEFAULT NULL,
`Status` varchar(50) DEFAULT NULL,
`ExpirationDate` date DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

如果我将 SubmissionDate、EffectiveDate 和 ExpirationDate 更改为 varchar,它们会正确插入,但我无法使用 varchar,因为我正在比较日期值。还有建议?

***更新。在 CSV 文件中,格式为 MM/DD/YYYY。我不认为这会成为问题。改变这个会更好吗?我正在删除记录,因为我的老板希望在重新上传文件之前清除数据库,因为上传的文件是先前上传的文件的更新。 ****

最佳答案

检查你的日期格式,因为MySql它需要采用YYYY-MM-DD格式

INSERT INTO table SET date = '2014-05-13'

如果您有不同的格式,日期将存储“0000-00-00”。因此,在运行查询之前,请通过回显查询字符串来仔细检查您的插入。

关于php - SQL 插入日期总是出现 NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26345268/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com