使用PDO和php插入日期

时间:2017-07-13 06:13:14

标签: php pdo

我正在尝试插入表中,我使用相同的语法为另一个查询管理了这个,但是这失败了,唯一的区别是它包含日期信息。有谁能发现问题?

日期采用以下格式:2016-07-07。

try {
$sql2 = "INSERT INTO excavation.contexts_spatial 
    (area_easting, 
    area_northing, 
    context_number, 
    open_date,
    close_date,
    excavation_method,
    contamination,
    zooarchaeology_comments,
    ceramic_comments) VALUES (
    :area_easting, 
    :area_northing, 
    :context_number, 
    :open_date, 
    :close_date, 
    :excavation_method,
    :contamination,
    :zooarchaeology_comments,
    :ceramic_comments)";

$stmt2 = $conn->prepare($sql2);

// prepare sql and bind parameters
$stmt2->bindParam(':area_easting', $area_easting, PDO::PARAM_INT);       
$stmt2->bindParam(':area_northing', $area_northing, PDO::PARAM_INT); 
$stmt2->bindParam(':context_number', $nextContext, PDO::PARAM_INT);
$stmt2->bindParam(':open_date', $open_date, PDO::PARAM_STR);
$stmt2->bindParam(':close_date', $close_date, PDO::PARAM_STR);
$stmt2->bindParam(':excavation_method', $excavation_method, PDO::PARAM_STR);
$stmt2->bindParam(':contamination', $contamination, PDO::PARAM_STR);
$stmt2->bindParam(':zooarchaeology_comments', $excavation_method, PDO::PARAM_STR);
$stmt2->bindParam(':ceramic_comments', $excavation_method, PDO::PARAM_STR);

//$stmt2->execute(); 

// insert a row
$area_easting = $_SESSION['area_easting'];
$area_northing = $_SESSION['area_northing'];
$nextContext = $_SESSION['nextContext'];
$open_date = $_SESSION['dateOpen'];
$close_date = $_SESSION['dateClose'];
$excavation_method = $_SESSION['excavationMethod'];
$contamination = $_SESSION['contamination'];
$zooarchaeology_comments = $_SESSION['zooarchaeologyComments'];
$ceramic_comments = $_SESSION['ceramicComments'];
$stmt2->execute();

echo "New records created successfully in contexts spatial<br />";
}
catch(PDOException $e)
{
 echo "Error: " . $e->getMessage();
}

1 个答案:

答案 0 :(得分:1)

您在设置变量之前正在执行语句。删除 $ stmt2-&gt; execute(); 从下面

$stmt2->bindParam(':ceramic_comments', $excavation_method, PDO::PARAM_STR);

$stmt2->execute(); // REMOVE THIS LINE

// insert a row
$area_easting = $_SESSION['area_easting'];