내가 PDO를 사용하여 MySQL의 DB에 새 행을 삽입하기 위해이 코드를 가지고 : 표시 오류없이PDO 삽입 쿼리가 작동하지를 들어 정수
$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가 에코됩니다. 그러나, 내가 DB를 보면 위도, 경도 및 타임 스탬프 만 삽입합니다. 새로 삽입 된 행의 pos_asset_id 필드가 비어 있습니다.
누군가가 문제를 지적 할 수 있습니까? 오류 메시지가 표시되지 않습니다. 나는 쓸모없이 이것을 몇 시간 동안 풀려고 노력해왔다.
ps. PDO를 사용한 것은 이번이 처음 이었으므로 나와 함께하시기 바랍니다. 감사.
편집
를 해결! asset_positions.pos_asset_id과 asset.asset_id 사이에 FK 관계가 있다는 것을 알지 못했습니다. 일단이 관계 제약을 제거하면 INSERT가 제대로 작동하고 pos_asset_id 값이 레코드에 삽입됩니다.
어쨌든, 모두 감사합니다! :)
체크 필드 유형입니다. PDO는 여기에 할 일이 없습니다 –
@ YourCommonSense, 완전히 동의합니다. 데이터베이스 필드 유형을 확인하십시오. – KinjalMistry
pos_asset_id의 필드 유형은 int (11)입니다. 필드 유형을 varchar (11)로 변경하려고했지만 여전히 삽입되지 않았습니다. – shinega