我有这个代码使用PDO在MySQL DB中插入一个新行:
$query = INSERT INTO asset_positions (pos_asset_id, pos_latitude, pos_longitude, pos_timestamp) VALUES (:pos_asset_id, :pos_latitude, :pos_longitude, :pos_timestamp)
$statement = $pdo->prepare($query);
$array = [':pos_asset_id' => 1, ':pos_latitude' => -8.5, ':pos_longitude' => 125.5, ':pos_timestamp' => 1398160487];
$statement->execute($array);
echo $pdo->lastInsertId();
运行查询时不会显示任何错误。重新插入新插入的行ID。但是,当我查看数据库时,它只插入纬度,经度和时间戳。新插入的行中的 pos_asset_id 字段为空。
有人可以指出问题出在哪里吗?没有显示错误消息。我一直试图解决这个问题几个小时但没有用。
聚苯乙烯。这是我第一次使用PDO,所以请耐心等待。感谢。
修改
解决!我没注意到 asset_positions.pos_asset_id 和 asset.asset_id 之间存在FK关系。删除此关系约束后,INSERT现在正常工作,pos_asset_id值将插入到记录中。
无论如何,谢谢大家! :)
答案 0 :(得分:0)
尝试使用错误捕获运行,它会让您更好地了解正在发生的事情。
try {
$stmt->execute();
} catch (PDOException $p) {
echo $p->getMessage();
} catch (Exception $e) {
echo $e->getMessage();
}
但是你的常识和user3540050是正确的...这可能是与列相关的问题