Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 加载数据填充期间时间戳字段未正确更新_Php_Mysql - Fatal编程技术网

Php 加载数据填充期间时间戳字段未正确更新

Php 加载数据填充期间时间戳字段未正确更新,php,mysql,Php,Mysql,我正在使用LOAD data INFILE用测试数据填充MySQL表,并看到我不理解的行为。时间戳列(默认值为CURRENT_timestamp)正在正确更新某些记录,而其他记录似乎是随机更新的,更新时间为0000-00-00:00:00 Questions Table Structure: Column Type Null Default Comments Q_ID int(10) No

我正在使用LOAD data INFILE用测试数据填充MySQL表,并看到我不理解的行为。时间戳列(默认值为CURRENT_timestamp)正在正确更新某些记录,而其他记录似乎是随机更新的,更新时间为0000-00-00:00:00

Questions Table Structure:
Column             Type     Null    Default             Comments
Q_ID               int(10)  No           
Clients_ID         int(10)  No           
Question           varchar(255) No  
。 . 遗漏的其他领域

连接到db后,以下是相关代码行:

// prepare the SQL query for the Questions table

$sql = "LOAD DATA INFILE 'c:/wamp/www/Q_Sample_01.CSV' INTO TABLE Questions FIELDS TERMINATED BY ','";

// submit the query and capture the result

$result = mysqli_query($conn, $sql) or die (mysqli_error($conn));
程序执行,数据正确插入所有字段,但Submit_Timestamp字段除外,该字段有时会得到正确的结果,有时会得到0000-00-00:00:00

Questions Table Structure:
Column             Type     Null    Default             Comments
Q_ID               int(10)  No           
Clients_ID         int(10)  No           
Question           varchar(255) No  
CSV文件在所有记录中都有一个前导逗号,以指示缺少的Q_ID数据。Q_ID字段是自动递增的,工作正常。CSV行末尾没有时间戳数据,我希望MySQL输入默认值。我试图在CSV中列出的最后一个字段后添加尾随的comas,认为这可能会使提交时间戳字段中添加的数据更加清楚,但这使情况变得更糟,每一条记录都有0000-00-00:00:00

我还尝试了一个修改表的建议,使Submit\u Timestamp在UPDATE CURRENT\u Timestamp时生效,但是没有任何帮助,而且这不是我想要的这个字段的行为,所以我删除了它

我只是注意到了一个模式,虽然它还没有解释给我。获取时间戳的所有0的记录中至少有一个字段周围有双引号,以防止包含的逗号不适当地指示新字段。这并不总是在最后一个字段中(与Submit_Timestamp字段相邻)。CSV是在Microsoft Excel中创建的


哪里出错了?

Excel保存到CSV对于包含逗号的字符串数据有问题

通过将分隔符字符更改为数据中不包含的字符,可以轻松解决此问题。我使用了“|”(在键盘上的反斜杠上方)

您还需要更改SQL命令以将此更改合并到分隔符中

$sql=“将数据填充'c:/wamp/www/Q_Sample_01.CSV'加载到以“|”结尾的表格问题字段中”

这很有效