【发布时间】:2018-01-07 19:26:45
【问题描述】:
我正在尝试将 CSV 数据插入数据库,我在下面尝试过这个
<?php
$stmt = $con->prepare('INSERT INTO test (field1, field2, load_time) VALUES (:val1, :val2, sysdate)');
$i=0;
while (($data = fgetcsv($source)) !== FALSE) {
if($i!=0) {
$field1=$data[0];
$field2=$data[1];
$stmt->bindParam(':val1', $field1);
$stmt->bindParam(':val2', $field2);
$stmt->execute();
}
$i++;
}
?>
此代码不起作用,如果此代码中有任何问题,请帮助解决,因为我是准备好的语句和 PDO 的新手。
【问题讨论】:
-
你绑定了两次 val1 和零次 val2
-
@jeprubio,嗨,谢谢,即使我试过 $stmt->bindParam(':val1', $field1); $stmt->bindParam(':val2', $field2);它不起作用。
-
您是否尝试将 sysdate 放入时间戳列?也许 systimestamp 会是一个更好的主意。
-
您应该在问题中添加错误 - 稍后不要作为评论。您应该检查任何 I/O 上的错误(fgetcsv 和 stmt->execute)。如果您添加了错误检查,那么您将能够看到您传递给语句的值并将这些值与表定义和任何适用的约束一起包含在您的问题中。
-
@davidb 我认为这是您正在寻找的解决方案stackoverflow.com/questions/35241870/…