PDO插入查询不适用于整数

时间:2014-04-22 10:23:24

标签: php mysql sql-insert

我有这个代码使用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值将插入到记录中。

无论如何,谢谢大家! :)

1 个答案:

答案 0 :(得分:0)

尝试使用错误捕获运行,它会让您更好地了解正在发生的事情。

try {
   $stmt->execute();
} catch (PDOException $p) {
    echo $p->getMessage();
} catch (Exception $e) {
    echo $e->getMessage();
}

但是你的常识和user3540050是正确的...这可能是与列相关的问题